将列分隔到不同的列,并在MySQL中只留下一个ID

时间:2017-04-08 21:18:47

标签: mysql

我是编码和SQL的新手。我有这样的数据库:

ID| technique
--|----------
1 | 1
1 | 2
1 | 3
2 | 1
2 | 3
3 | 1

我需要这个结果

ID| technique1|technique2|technique3
--|-----------|----------|----------
1 | 1         | 2        | 3
2 | 1         |.         | 3
3 | 1         |.         |.

有可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用条件聚合执行此操作:

select id,
       max(case when technique = 1 then 1 end) as technique1,
       max(case when technique = 2 then 2 end) as technique2,
       max(case when technique = 3 then 3 end) as technique3
from t
group by id;

我将.解释为NULL