当插入记录不为空时,如何将表中的记录插入临时表?

时间:2013-04-03 02:56:26

标签: sql-server

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

示例:

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

columnA              columnB           columnC   
854111111            854254125

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

Column
854111111            
854254125

1 个答案:

答案 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