我有这个源表:
source table: ------------------------------ | id | col 1 | col 2 | col n | ------------------------------ | 0 | 1 | NULL | NULL | ------------------------------ | 0 | NULL | 1 | NULL | ------------------------------ | 0 | NULL | NULL | 1 | ------------------------------ | 1 | 1 | NULL | NULL | ------------------------------ | 1 | NULL | NULL | 1 | ------------------------------
一行中永远不会有两列的值(NULL除外)。
现在我需要将它转置到这个目标表:
目标表:
------------------------------ | id | col 1 | col 2 | col n | ------------------------------ | 0 | 1 | 1 | 1 | ------------------------------ | 1 | 1 | NULL | 1 | ------------------------------
我陷入困境,却感觉我错过了一些简单的伎俩......?
我真的很感谢你的帮助!
答案 0 :(得分:2)
使用MAX()
SELECT id,
MAX(col1) AS col1,
MAX(col2) AS col2,
MAX(coln) AS coln
FROM sourceTB
GROUP BY id
因为你想将它插入目标表,你可以简单地建立一个INSERT
语句,如下所示:
INSERT INTO targetTB (id, col1, col2, coln)
SELECT id,
MAX(col1),
MAX(col2),
MAX(coln)
FROM sourceTB
GROUP BY id