我有一个像下面的行和
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。
答案 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;