当插入记录不为空时,是否有人知道如何将表中的记录插入临时表?
示例:
我有一个表调用A,临时表属于TempTable。 A表内包含1行和3列:
columnA columnB columnC
854111111 854254125
我想将表A中的记录插入tempTable中,tempTable只包含一列
Column
854111111
854254125
答案 0 :(得分:2)
您可以将UNION
(或UNION ALL
)列添加到INSERT
语句中:
INSERT INTO TempTable
SELECT ColumnA
FROM TableA
WHERE ColumnA IS NOT NULL
UNION
SELECT ColumnB
FROM TableA
WHERE ColumnB IS NOT NULL
UNION
SELECT ColumnC
FROM TableA
WHERE ColumnC IS NOT NULL
或者您可以将UNION
移动到子查询并且只有1个WHERE
子句:
INSERT INTO TempTable
SELECT A
FROM (
SELECT ColumnA A
FROM TableA
UNION
SELECT ColumnB
FROM TableA
UNION
SELECT ColumnC
FROM TableA
) t
WHERE A IS NOT NULL