sqlserver2008中有没有类似oracle中lag()的函数,没有的话如何实现
表为:column1column2AaaAbbAccBddBee结果为:column1column2Aaa,bb,ccBdd,ee...
表为:
column1 column2
A aa
A bb
A cc
B dd
B ee
结果为:
column1 column2
A aa,bb,cc
B dd,ee 展开
column1 column2
A aa
A bb
A cc
B dd
B ee
结果为:
column1 column2
A aa,bb,cc
B dd,ee 展开
展开全部
--字符串聚合,适用于SQL Server 2005及以上
--测试数据
with tmp(column1,column2) as (
select 'A','aa' union all
select 'A','bb' union all
select 'A','cc' union all
select 'B','dd' union all
select 'B','ee')
--用for xml path实现字符串聚合
SELECT DISTINCT column1,
STUFF(
COALESCE(
(SELECT ',' + column2 AS [text()]
FROM tmp AS t2
WHERE t2.column1=t1.column1
FOR XML PATH(''), TYPE).value('.[1]', 'VARCHAR(MAX)'), ''),1,1,'') AS column2
FROM tmp AS t1;
结果:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |