SQL在多个行的同一个表之间连接

时间:2014-09-25 00:37:15

标签: sql tsql

这可能很简单,但我有一个心理空白的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?

由于

1 个答案:

答案 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语句。