2个表1,其他客户使用accno信息
table 1:
file, accno <- nvarchar(50)
t1, 123a
t1, 456a
t1, 789a
t2, 012b
t3, 345c
t3, 678c
我想将表1转移到表2
table 2:
file, accno <- nvarchar(max)
t1, 123a
456a
789a
t2, 012b
t3, 345c
678c
我能做到这一点很简单,但是这需要花费6个小时,因为我在表1中过滤了接近300000条记录
是否有一个sql查询可以让它变得非常快,即使需要5分钟
答案 0 :(得分:1)
SELECT
DISTINCT [File]
,STUFF(
(SELECT ',' + accno
FROM
TableName it
WHERE it.[File] = ot.[File]
FOR XML PATH(''))
,1,1,'') AS [Memo]
FROM
TableName ot
你可以调整这个但是这会创建一个逗号分隔的你的accno列表,我认为你正在寻找什么?您可以修改为在备注字段中使用行结尾而不是逗号。
答案 1 :(得分:0)
k所以事实证明,两端有趣的小发明是回车,我设法通过修改下面的查询来解决这个问题
SELECT
DISTINCT fileref, stuff(
(
Select '; ' + IsNull( D2.viaccno, '' )
From vi_accno As D2
Where D2.vifileref = A.FileRef
For Xml Path(''), type
).value('.', 'nvarchar(max)')
, 1, 2, '') As SelectedComments
FROM
vtindex a
感谢@Matt的帮助和回应