有谁知道当插入记录不为空时如何将表中的记录插入临时表?
例子:
我有一个表调用 A,一个临时表属于 TempTable。A 表内部包含 1 行和 3 列:
columnA columnB columnC
854111111 854254125
我想将表 A 中的记录插入到 tempTable 中,其中 tempTable 仅包含一列
Column
854111111
854254125
有谁知道当插入记录不为空时如何将表中的记录插入临时表?
例子:
我有一个表调用 A,一个临时表属于 TempTable。A 表内部包含 1 行和 3 列:
columnA columnB columnC
854111111 854254125
我想将表 A 中的记录插入到 tempTable 中,其中 tempTable 仅包含一列
Column
854111111
854254125
您可以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