我有一个包含这些列的表:a,b1,b2,b3
我希望从这个表中获得这样的查询:
_______________
| col1 | col2 |
|-------------|
| a | b1 |
| a | b2 |
| a | b3 |
|_____________|
是否可以使用SELECT命令?
答案 0 :(得分:2)
执行UNION ALL
是一种方式,但您也可以使用UNPIVOT
查询,请参阅下文,
无论如何,我认为UNPIVOT将比多次联合更有效率。
MS SQL Server 2008架构设置:
查询1 :
DECLARE @TABLE TABLE(col1 VARCHAR(5), col2 VARCHAR(5)
, Col3 VARCHAR(5), Col4 VARCHAR(5))
INSERT INTO @TABLE VALUES
( 'a' , 'B1', 'B2', 'B3'),
( 'd' , 'E1', 'E2', 'E3')
SELECT col1
,Vals AS Col2
FROM @TABLE t
UNPIVOT (Vals FOR N IN (col2,col3,col4) ) up
<强> Results 强>:
| COL1 | COL2 |
|------|------|
| a | B1 |
| a | B2 |
| a | B3 |
| d | E1 |
| d | E2 |
| d | E3 |