我有一个数据库中的表行,如下所示:一行基本SQL数据透视表?
Milk
Eggs
Butter
Cheese
Bread
我想整个行转动成一列显示如下:使用
Milk Eggs Butter Cheese Bread
我发现了很多的例子它具有多列和多行或基于选择条件。我还没有找到如何做一行的例子,我无法弄清楚。谢谢您的帮助!
编辑: 下面的方法很好,但有没有办法做到这一点,并将行值转换为列值?
我有一个数据库中的表行,如下所示:一行基本SQL数据透视表?
Milk
Eggs
Butter
Cheese
Bread
我想整个行转动成一列显示如下:使用
Milk Eggs Butter Cheese Bread
我发现了很多的例子它具有多列和多行或基于选择条件。我还没有找到如何做一行的例子,我无法弄清楚。谢谢您的帮助!
编辑: 下面的方法很好,但有没有办法做到这一点,并将行值转换为列值?
使用改性的ied版样品here。
DECLARE
@SQL varchar(MAX),
@ColumnList varchar(MAX)
SELECT @ColumnList=
COALESCE(@ColumnList + ',','') + QUOTENAME(your_column_name)
FROM
(
SELECT DISTINCT your_column_name
FROM your_table
) T
SET @SQL = '
WITH PivotData AS
(
SELECT your_column_name
FROM your_table
)
SELECT
' + @ColumnList + '
FROM
PivotData
PIVOT
(
MAX(your_column_name)
FOR your_column_name
IN (' + @ColumnList + ')
) AS PivotResult'
EXEC (@SQL)
P.S.我不得不认真地质疑为什么我这样做。 :)
select your_column_name+' ' from your_table for XML PATH ('')
将返回
Milk Eggs Butter Cheese Bread
这里是整个脚本:
declare @Q as table
(name varchar(50))
insert into @Q
values
('Milk'),
('Eggs'),
('Butter'),
('Cheese'),
('Bread')
select name+' ' from @Q for XML PATH ('')
这很好。谢谢!我这样做的原因是因为我使用数据库中的信息创建配置文件,而我只需要1行,但需要将其作为列读入。 – buzzzzjay
很高兴能帮到你。 –