34,590
社区成员
发帖
与我相关
我的任务
分享
SELECT in_seq,MIN(use_dept) AS use_dept1,MAX(use_dept) AS use_dept2
FROM tb
GROUP BY in_seq
with a(n_seq,use_dept) as(
select '20144570','004' union
select '20144570','027' union
select '20144598','004' union
select '20144598','031'
)
SELECT t.n_seq,MAX(CASE WHEN t.seq=1 THEN t.use_dept ELSE '' END) AS use_dept1
,MAX(CASE WHEN t.seq=2 THEN t.use_dept ELSE '' END) AS use_dept2
FROM (
select *,row_number()over( PARTITION BY n_seq ORDER BY use_dept) AS seq from a
) t GROUP BY t.n_seq
with a(in_seq,use_dept) as(
select '20144570','004' union
select '20144570','027' union
select '20144598','004' union
select '20144598','031'
)
select in_seq,[1] as use_dept1,[2] as use_dept2 from
(select *,rn=ROW_NUMBER() over(partition by in_seq order by use_dept) From a ) b
pivot(max(use_dept) for rn in ([1],[2])) c