用于拆分字符串的SQL Query

时间:2011-06-27 03:01:25

标签: sql sql-server-2005 split

我有字符串“ABCD.EFGH.IJKL.MNOP”。我正在寻找一个我可以获得的SQL查询

第一部分(“ABCD”),第二部分(“EFGH”),第三部分(“IJKL”),第四部分(“LMNOP”)来自大数据。必须牢记这一表现。

谢谢

此致 詹姆斯

3 个答案:

答案 0 :(得分:1)

Jeff Moden最近撰写了一系列关于此问题的文章,其中包括对最常见的填补这一共同需求的尝试的性能比较。请参阅最新一期以及他的DelimitedSplit8K函数的最新版本http://www.sqlservercentral.com/articles/Tally+Table/72993/

答案 1 :(得分:0)

我假设你正在寻找MSSQL。您可以使用返回表变量的用户定义函数来执行此操作。试试这个

CREATE FUNCTION dbo.Split(@String varchar(8000), @Delimiter char(1))       
returns @temptable TABLE (items varchar(8000))       
as       
begin       
    declare @idx int       
    declare @slice varchar(8000)       

    select @idx = 1       
        if len(@String)<1 or @String is null  return       

    while @idx!= 0       
    begin       
        set @idx = charindex(@Delimiter,@String)       
        if @idx!=0       
            set @slice = left(@String,@idx - 1)       
        else       
            set @slice = @String       

        if(len(@slice)>0)  
            insert into @temptable(Items) values(@slice)       

        set @String = right(@String,len(@String) - @idx)       
        if len(@String) = 0 break       
    end   
return       
end  

您可以使用此功能是您的SQL查询

select * from dbo.Split('Test,Tested,To be Tested',',')

答案 2 :(得分:0)