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
展开
 我来答
frogley
2014-03-27 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1091万
展开全部
--字符串聚合,适用于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;

结果:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式