Tsql 如何将行显示为列
例如,我想返回数据以将行显示为列Tsql 如何将行显示为列,tsql,pivot,Tsql,Pivot,例如,我想返回数据以将行显示为列 ref, description 123, bananas, apples, oranges etc 可能有多个描述项 表中的列表显示在表行中 ref, description 123, bananas 123, apples 123, oranges 任何想法/代码都值得赞赏 这是我创建的CTE,但我很高兴探索其他强大的解决方案 with PivotV as ( SELECT [CO-PERSON-VULNERABILITY].perso
ref, description
123, bananas, apples, oranges etc
可能有多个描述项
表中的列表显示在表行中
ref, description
123, bananas
123, apples
123, oranges
任何想法/代码都值得赞赏
这是我创建的CTE,但我很高兴探索其他强大的解决方案
with PivotV as (
SELECT [CO-PERSON-VULNERABILITY].person_ref [Ref],
(case
when [CO_VULNERABLE-CODES].DESCRIPTION = 'Restricted Mobility' then 'RM'
when [CO_VULNERABLE-CODES].DESCRIPTION = 'Progressive or Long Term Illness' then 'PLTI'
when [CO_VULNERABLE-CODES].DESCRIPTION = 'ASB / Injunction Order' then 'AIO'
when [CO_VULNERABLE-CODES].DESCRIPTION = 'Beware possible Drug Paraphernalia' then 'BPDP'
when [CO_VULNERABLE-CODES].DESCRIPTION = '[Can''t] Manage Stairs' then 'CMS'
else NULL end) as [VunDesc]
--,[CO-PERSON-VULNERABILITY].vulnerable_code, [CO_VULNERABLE-CODES].[VULNERABLE-IND],
FROM [CO-PERSON-VULNERABILITY] INNER JOIN
[CO_VULNERABLE-CODES] ON [CO-PERSON-VULNERABILITY].vulnerable_code = [CO_VULNERABLE-CODES].[VULNERABLE-IND])
不幸的是,在
SQL Server 2017
(您可以在这里使用STRING_AGG()
)之前,想要做什么并不容易
SELECT t1.ref
, STUFF((
SELECT ',' + t2.description
FROM #t as t2
WHERE t2.ref = t1.ref
ORDER BY t2.description
FOR XML PATH('')), 1, LEN(','), '') as description
FROM #t as t1
GROUP BY t1.ref
请发布您的数据,以及您已经尝试过的内容。您正在使用的数据库和版本是什么?SQL server 2016Hanks-非常有效