0

有谁知道当插入记录不为空时如何将表中的记录插入临时表?

例子:

我有一个表调用 A,一个临时表属于 TempTable。A 表内部包含 1 行和 3 列:

columnA              columnB           columnC   
854111111            854254125

我想将表 A 中的记录插入到 tempTable 中,其中 tempTable 仅包含一列

Column
854111111            
854254125
4

1 回答 1

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
于 2013-04-03T03:00:39.760 回答