Sql server 如何将文本字段中的值用分隔符分隔;那么这些值将在一个结果集中返回?

Sql server 如何将文本字段中的值用分隔符分隔;那么这些值将在一个结果集中返回?,sql-server,tsql,join,split,sql-server-2008-r2,Sql Server,Tsql,Join,Split,Sql Server 2008 R2,抱歉,所有详细信息都在图像中,无法获取文本 请给我一些建议 以李罗伊为例 以下是我的拆分函数: 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)

抱歉,所有详细信息都在图像中,无法获取文本 请给我一些建议 以李罗伊为例

以下是我的拆分函数:

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
创建函数[dbo].[Split](@String varchar(8000),@Delimiter char(1))
返回@tentable表(items varchar(8000))
作为
开始
声明@idx int
声明@slice varchar(8000)
选择@idx=1
如果len(@String)0)
插入到@attreable(Items)值(@slice)
设置@String=right(@String,len(@String)-@idx)
如果len(@String)=0中断
结束
返回
结束

如问题注释中所述,您需要创建一个函数来拆分文本值并返回一个表供您加入

有很多方法可以做到这一点,其中大多数方法都太过复杂,无法包含在问答格式中*。你可能会得到的最好的评论来自


*我知道这有点违反了这里的答案规则,但是如果上面的链接消失了,谷歌搜索“字符串分割函数SQL Server”会给你带来一些有用的东西!您使用的是什么DBMS?使用SQL 2008 R2很抱歉,文本不想添加,让我再试一次。您需要在表上拆分类似于
的内部连接您的拆分函数(名称列表“;”)。类似“%”+splitted.OneValue+“%”的列
。这将分别绑定每个名称的所有行。。。