如何用值分隔的值切割文本字段;以便在一个结果集中拼命返回值?

时间:2016-10-17 12:54:15

标签: sql-server tsql join split sql-server-2008-r2

很抱歉所有细节都在图片中,以获取文本 请告诉我这个 关注Lee'Roy

这是我的分割功能:

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

1 个答案:

答案 0 :(得分:3)

正如您对问题的评论中所提到的,您需要创建一个功能来分割您的文本值并返回一个表供您加入。

有很多方法可以做到这一点,其中大多数方法都涉及到这种Q&amp; A格式*。你可能得到的最好的写作来自Jeff Moden

*我所知道的有点违反这里的答案规则,但谷歌搜索“字符串拆分函数SQL Server”将为您提供有用的东西,如果上面的链接死了