我对表格的输入
id value
1 23
1 22
1 24
2 55
2 44
我的输出应该是
1 23|22|24
2 55|44
请帮助提供可以在 sybase 数据库中运行的查询。
我对表格的输入
id value
1 23
1 22
1 24
2 55
2 44
我的输出应该是
1 23|22|24
2 55|44
请帮助提供可以在 sybase 数据库中运行的查询。
您可以使用 执行此操作row_number()
,它应该在您的 Sybase 版本中可用:
select id,
stuff((max(case when seqnum = 1 then '|' + value else '' end) +
max(case when seqnum = 2 then '|' + value else '' end) +
max(case when seqnum = 3 then '|' + value else '' end) +
max(case when seqnum = 4 then '|' + value else '' end)
), 1, 1, '') as vals
from (select t.*, row_number() over (partition by id order by value) as seqnum
from t
) t
group by id;