Anatoly Lubarsky Logo
MSSQL, .NET, Design. Life and Music

SQL Tip: HowTo Convert Delimited String to Table

Many times we need to deal with lists in T-SQL, for instance we need to have a list of values to pass it to IN clause in SQL. This list is supposed to look like delimited string. However we can not pass it to T-SQL procedure as a string because T-SQL compiler can not interpret delimited string as a list of values.


For MSSQL - the list of values is of table type, so we need to have a tool to convert delimited string to table. The function below does just that. So we are able to pass delimited strings to the procedure, convert this string to table and use it later in SQL IN close or in joins.


create function F_TBL_VALS_FROM_STRING
(@p_str varchar(1000))
returns @tbl table (VAL int)
as
begin
    set @p_str = @p_str + ','
    declare @p_counter int
    declare @p_len int
    declare @p_curr_char varchar(1)
    declare @p_char varchar(6)
    declare @p_num int
    set @p_len = len(@p_str) 
    set @p_counter = 1
    set @p_curr_char = ''
    set @p_char = ''

    -- loop
    while @p_counter <= @p_len 
    begin
        set @p_curr_char = substring(@p_str, @p_counter, 1)
        if (@p_curr_char <> ',')
        begin
            set @p_char = @p_char + @p_curr_char         
        end
        else
        begin  
            set @p_num = convert(int, @p_char)         
            insert into @tbl values(@p_num)
            set @p_char = ''
        end
       set @p_counter = @p_counter + 1
    end
    return
end

Some raw T-SQL for your consideration...


Related Posts:

Sunday, November 30, 2003 1:31 AM

Comments

# How to pass a string of interger to a SP with an in() clause - dBforums
How to pass a string of interger to a SP with an in() clause - dBforums

9/30/2009 9:20 AM by Pingback/TrackBack

Login

Fosimo
Get Fosimo on CNET Download.com!
Fosimo.TR
Get Fosimo.TR from CNET Download.com!
Subscribe via RSS

Article Categories

.Net Framework
ASP.NET Tips
C# Win32 API
HTML, CSS, Web
Javascript Tips
MSSQL Tips
System
System.Net
WebServices

Archives

(02) March, 2010
(01) January, 2010
(02) December, 2009
(03) September, 2009
(03) August, 2009
(09) July, 2009
(04) June, 2009
(04) May, 2009
(02) April, 2009
(05) March, 2009
(03) February, 2009
(03) January, 2009
(06) December, 2008
(04) November, 2008
(06) October, 2008
(07) September, 2008
(09) August, 2008
(05) July, 2008
(05) June, 2008
(07) May, 2008
(06) April, 2008
(03) March, 2008
(02) February, 2008
(04) January, 2008
(03) December, 2007
(05) November, 2007
(06) October, 2007
(07) September, 2007
(13) August, 2007
(11) July, 2007
(14) June, 2007
(16) May, 2007
(14) April, 2007
(10) March, 2007
(17) February, 2007
(21) January, 2007
(17) December, 2006
(14) November, 2006
(13) October, 2006
(13) September, 2006
(14) August, 2006
(12) July, 2006
(11) June, 2006
(12) May, 2006
(22) April, 2006
(36) March, 2006
(14) February, 2006
(14) January, 2006
(20) December, 2005
(17) November, 2005
(17) October, 2005
(17) September, 2005
(14) August, 2005
(18) July, 2005
(12) June, 2005
(17) May, 2005
(13) April, 2005
(22) March, 2005
(12) February, 2005
(14) January, 2005
(19) December, 2004
(15) November, 2004
(13) October, 2004
(16) September, 2004
(12) August, 2004
(29) July, 2004
(25) June, 2004
(33) May, 2004
(26) April, 2004
(18) March, 2004
(11) February, 2004
(07) January, 2004
(03) December, 2003
(02) November, 2003

Post Categories

.Net and C#
Antispam
App. Development
Architecture
ASP.NET
Blogging
del.icio.us
Fosimo
Fun
Google
Javascript
Misc.
MSSQL
Music
Performance
Roller
Social Networks
Tools
Visual Studio
Web 2.0
WebServices
Yahoo

About Me

linkedin Profile
Recs
Recs Books
Who am I

My Sites

onecone
x2line blogs