【发布时间】:2019-03-22 02:05:48
【问题描述】:
我遇到了以下问题。
我的示例数据如下所示:
03D
03F
03G
03H
03I
04E
05D
05G
05H
06C
08D
08D (BEST)
08E
08E (BEST)
08F
08F (BEST)
08G
08G (BEST)
08H
08H (BEST)
08I
08I (BEST)
08J
08K
08k08K
08L
08L (BEST)
我需要将这些数据组合成一个字符串,如下所示:
03D;03F;03G;03H;03I;04E;05D;05G;05H;06C;08D;08D (BEST);08E;08E (BEST);08F;08F (BEST);08G;08G (BEST);08H;08H (BEST);08I;08I (BEST);08J;08K;08k08K;08L;08L (BEST);
请注意,此表中始终会添加数据,因此,我需要此表准确运行,以使用此表的结果更新单个字段。
不同的值应该用这个操作符;分割
我尝试实现的脚本是:
declare @loop int
, @Tempid int
, @lookup varchar(max)
declare @bin table
(id int identity primary key, bin varchar(100))
insert into @bin (bin)
select distinct
cBinLocationName
from _btblBinLocation
set @lookup = ''
begin
select @Loop = min(ID) FROM @bin
while @Loop IS NOT NULL
begin
set @Tempid = (select id from @bin where id=@Loop)
set @lookup = @lookup + (select bin FROM @bin where ID=@Tempid)+';'
select @Loop = min(ID) FROM @bin where ID>@Loop
end
end
select @lookup
问题是,我的结果一直是''。
请帮忙?
【问题讨论】:
-
我不这么认为,因为数据提取会超出 SQL 表
-
如果不是 SQL 表,您的数据来自哪里..?
-
它来自一个 SQL 表,因此我的代码是
select distinct cBinLocationName from _btblBinLocation -
不要因为在重复的 @Larnu 链接中使用
FOR XML指令而被推迟,它从数据库表中检索数据并使用分隔符连接它 -
感谢 Larnu,是的,您的帮助很有帮助。并且感谢迪亚多,我从来没有在这方面使用过 XML,我不明白它是如何工作的,但我设法让它工作,我现在将分享答案。
标签: sql-server tsql