这可能很简单,但我有一个心理空白的atm。
Table A
ID Seq Txt
---------------------------
10 0 Orange
10 1 Banana
20 0 Mango
30 0 Apple
30 1 Grape
30 2 Pineaple
我希望能够将所有ID分组并在一行上显示它们。
即。
ID Seq1 Txt1 Seq2 Txt2
-------------------------------------
10 0 Orange 1 Banana
20 0 Mango null null
.. 30 etc
我该如何解决这个问题?我自己执行连接并在Seq编号上执行OR?
由于
答案 0 :(得分:1)
您可以通过案例陈述使用条件汇总:
select id,
min(case seq when 0 then 0 end) as seq1,
min(case seq when 0 then txt end) as txt1,
min(case seq when 1 then 1 end) as seq2,
min(case seq when 1 then txt end) as txt2,
min(case seq when 2 then 2 end) as seq3,
min(case seq when 2 then txt end) as txt3
from tbl
group by id
但是如果seq可以超越#2,你必须在上面添加更多的case语句。