将长行隐藏成多行

时间:2016-07-05 11:23:57

标签: sql

我有一个像下面的行和

ID1 Name1   ID2 Name2   ID3 Name3
1     ABC   2    DEF    3   GHI

预期输出如下所示,SQL中是否有任何选项以简单的方式执行此操作,

ID  Name
1   ABC
2   DEF
3   GHI

我这样做是为了写CTE和插入。原因是我有类似的源表,其中ID将持续到12,13。

2 个答案:

答案 0 :(得分:1)

union all会做你想做的事

CREATE TABLE #tmptab1 (ID1 varchar(1) ,
                       Name1 varchar(3),   
                       ID2 varchar(1), 
                       Name2 varchar(3),  
                       ID3 varchar(1), 
                       Name3 varchar(3))

INSERT INTO #tmptab1 VALUES ('1','ABC','2','DEF','3','GHI')

SELECT ID1,Name1 
FROM #tmptab1
UNION ALL
SELECT ID2,Name2
FROM #tmptab1
UNION ALL

答案 1 :(得分:0)

您可以使用union all

select id1 as id, name1 as name from t union all
select id2, name2 from t union all
select id3, name3 from t;