如何将包含varchar列的1行表转换为列?

时间:2009-05-15 08:19:38

标签: sql-server tsql

在SQL Server中如何将包含varchar列的1行转换为列? 我想我需要使用Pivot但我找不到没有agregators的例子

这就是我的情况:

create table #tmp ( ac varchar(100), bc varchar(100), cc varchar(100))
insert into #tmp (ac,bc,cc)
Values ('test1','test2','test3')

insert into #tmp
Values ('test4','test5','test6')

SELECT *
FROM #tmp
WHERE ac='test1'

drop table #tmp

我需要在列中转换select的结果,我将在另一个嵌套查询中使用结果列。

谢谢!

1 个答案:

答案 0 :(得分:1)

你需要使用UNPIVOT,而不是PIVOT

create table #tmp ( ac varchar(100), bc varchar(100), cc varchar(100))

insert into #tmp (ac,bc,cc)

Values ('test1','test2','test3')

SELECT
    *
FROM
    #tmp

SELECT
    *
FROM
    #tmp
UNPIVOT
(
    [Column] FOR Data IN (ac, bc, cc)
) uPIVOT


drop table #tmp