我有一个数百万行的视图,在为所有行运行它时会超时,但可以在其中选择以撤回数据的快照。
我正在尝试将Criteria名称和KeyDescription2连接起来,基于第0列和idno作为不同的标准,然后导出到csv或电子表格。
我创建了一个.asp页面,我从原始表中选择不同的Column 0和idnumber然后循环以获取条件名称。这工作正常但是需要2分钟才能完成1000行,这意味着需要半年才能运行完整的报告!因此需要一种更好,更快的方法来实现这一目标。有谁知道我将如何直接在SQL-Server本身中实现结果。
答案 0 :(得分:2)
使用stuff()
with select ... for xml path ('')
method of string concatenation。
select
Column0
, idno
, grouppid
, Criterianame = stuff((
select ', '+ i.CriteriaName +': ' + i.KeyDescription2
from view_a as i
where i.Column0 = a.Column0
and i.grouppid = a.grouppid
and i.idno = '' -- `i.idno is null` if your blank value is a null
for xml path (''), type).value('(./text())[1]','nvarchar(max)')
,1,2,'')
, criteriatype2
, keydescription2
from view_a as a
where a.idno <> '' -- `a.idno is not null` if your blank value is a null
注意:
string_agg()
。