我有一個數據庫中的錶行,如下所示:一行基本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
很高興能幫到你。 –