我有一行列数未知。我需要将所有这些列都拆分为一列。这是一个例子。我从这个表开始
select 1 as c1, 2 as c2, 3 as c3
into tempP
如果我们选择此表,结果将是
c1 c2 c3
1 2 3
我希望结果是这个
new_name
1
2
3
另外,请记住,我不知道我是否会有3列。我可能有100列,但行数总是1.谢谢。
答案 0 :(得分:0)
正如Bluefeet在您的评论部分中提到的,您需要UNPIVOT
查询,而不是Pivot查询。
您需要注意的一件事是,对于您是Unpivoting的所有列,数据类型应该相同。
像这样......
DECLARE @TABLE TABLE(c1 INT , c2 INT, c3 INT)
INSERT INTO @TABLE VALUES
(1, 2, 3),
(10, 20, 30)
SELECT NewColumn
FROM @TABLE
UNPIVOT (NewColumn FOR allcols IN ([c1],[c2],[c3]) ) up
NewColumn
1
2
3
10
20
30