从列中选择数据并根据其值在不同的列中显示它们

时间:2014-07-15 13:26:52

标签: sql db2

我试图从表格中选择一个值,如下例所示:

user   id
----------
a       1
b       1
c       3
d       2
a       3

,结果如下:

user  id_1  id_2  id_3
-----------------------
a      1     NULL   3
b      1     NULL   NULL
c      NULL  NULL   3
d      NULL  2      NULL

所以我基本上想要实现的目标是让所有使用id's ==1的用户访问某列,将id ==2的用户添加到另一列,将id ==3的用户设置为'a'第三列和用户是重复的,就像用户id=1id=3和{{1}}显示一次时的情况一样,并且我希望在结果表中捕获此重复项。

任何想法都会受到赞赏。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

这称为枢轴。您可以使用条件聚合执行此操作:

select user,
       max(case when id = 1 then id end) as id_1,
       max(case when id = 2 then id end) as id_2,
       max(case when id = 3 then id end) as id_3
from table t
group by user
order by user;