-4

我对表格的输入

id  value
1    23
1    22
1    24
2    55
2    44

我的输出应该是

1 23|22|24
2 55|44

请帮助提供可以在 sybase 数据库中运行的查询。

4

1 回答 1

-1

您可以使用 执行此操作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;
于 2018-06-22T01:52:08.003 回答