首页 > 解决方案 > 如何将相同 num 的 2 个值获取到 2 个单独的列

问题描述

我有这样的表:

num |type|value
--------------
1 | a   | 5
1 | b   | 7
3 | c   | 9
2 | a   | 6
2 | b   | 9

并想要这种结果:

num| value (a) | value (b)
-------------------------
1  |    5      |   7
2  |    6      |   9

标签: sqloracleselect

解决方案


您可以使用 GROUP BY 和 CASE,如下所示:

select
  num,
  max(case when type = 'a' then value end) as value_a,
  max(case when type = 'b' then value end) as value_b
from t
group by num

推荐阅读