My input for table
id value
1 23
1 22
1 24
2 55
2 44
my output should be
1 23|22|24
2 55|44
Please help in providing query which can run in sybase database.
My input for table
id value
1 23
1 22
1 24
2 55
2 44
my output should be
1 23|22|24
2 55|44
Please help in providing query which can run in sybase database.
You can do this with row_number()
, which should be available in your version of 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;