Skip to main content

Split a string to a table using T-SQL

 In this tutorial, I will create a utility function used for string split and return in a table.

ALTER FUNCTION Splitstring_to_table
(
    @string NVARCHAR(MAX),
    @delimiter CHAR(1)
)
RETURNS @output TABLE(
    id INT IDENTITY(1,1) PRIMARY KEY,
    data NVARCHAR(MAX)
)
BEGIN
    DECLARE @start INT, @end INT
    SELECT @start = 1, @end = CHARINDEX(@delimiter, @string)

    WHILE @start < LEN(@string) + 1 BEGIN
        IF @end = 0 
            SET @end = LEN(@string) + 1

        INSERT INTO @output (data) 
        VALUES(SUBSTRING(@string, @start, @end - @start))
        SET @start = @end + 1
        SET @end = CHARINDEX(@delimiter, @string, @start)
    END
    RETURN
END

push string to function, see result

SELECT * FROM dbo.Splitstring_to_table('Bangladesh, America, German,',',')


















Charindex :

In SQL Server (Transact-SQL), the CHARINDEX functions returns the location of a substring in a string. The search is NOT case-sensitive.

CHARINDEX( @delimiter, @string, [start_position] )

Substring :
In SQL Server (Transact-SQL), the SUBSTRING functions allows you to extract a substring from a string.


SUBSTRING( string, [start_position], length )

Comments

Popular posts from this blog

What are the difference between DDL, DML , DCL and TCL commands?

Database Command Types DDL Data Definition Language  (DDL) statements are used to define the database structure or schema.  -           CREATE - to create objects in the database -           ALTER - alters the structure of the database -           DROP - delete objects from the database -           TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed -           COMMENT - add comments to the data dictionary -           RENAME - rename an object DML Data Manipulation Language  (DML) statements are used for managing data in database. DML commands are not auto-committed. It means changes made by DML command are not permanent to d...

Display Image Immediately from fileUpload Control

Client Side Programming is more efficient for user to very first interection Like Jquery . Now i provide some jquery script to display Image from FileUpload Control directly.. For this purpose we use reference . <script src="../../../JS/JQueryAutocomplete/jquery-1.7.2.js" type="text/javascript"></script>. You just download from jquery.com. Now code below... <script language="javascript" type="text/javascript"> /* Write FileUpload Change event .. */ $('#FileUpload1').bind('change', function() {                                 displayImage(this);                    }); //-------------------------// function displayImage(input)             {        ...

DBCC command to RESEED Table Identity Value – Reset Table Identity

Generally,  we are using identity column into table where identity value incrementally inserted.  DBCC command RESEED is used to reseed (reset) column identity. For example, your table has 20 rows that means last identity value is 20. if you want to reseed identity value will be 30, you can run following TSQL. DBCC  CHECKIDENT  ( yourtable ,  reseed ,  29 ); i f You reseed identity value which is below in current table, it will violate   the uniqueness constraint as soon as the values start to duplicate and will generate error. If you delete last row in current table and insert new row into current table, your new inserted identity value will be last (deleted identity value + incremental value). For example, you delete last three rows where Identity value is 20 - 22 ,so if you now insert new row,  identity value will be 23. That means seed value keep into transaction log.