2017-10-12 48 views
-2
id | qns | ans 
---+-------+---- 
1 | qns 1 | a 
1 | qns 2 | b 
2 | qns 1 | c 
2 | qns 2 | d 

可以使用什麼SQL查詢將上表轉換爲下表?SQL將行變爲列

id | qns 1 | qns 2 
---+-------+------ 
1 | a  | b 
2 | c  | d 
+0

你使用MySQL? – Strawberry

回答

2

有將數據從行轉換爲列的多個選項。在SQL中,您可以使用PIVOT將數據從行轉換爲列。

CREATE table #tablename 
(Id int, Value varchar(10), ColumnName varchar(15); 


INSERT INTO #tablename 
(ID, Value, ColumnName) 

VALUES 
(1, 'Lucy', 'FirstName'), 
(2, 'James', 'LastName'), 
(3, 'ABCDXX', 'Adress'), 
(4, 'New York', 'City'), 
(5, '8572685', 'PhoneNo'); 

select FirstName, LastName, Address, City, PhoneNo 
from 
(
select Value, ColumnName 
from #tablename 
) d 
pivot 
(
max(Value) 
for ColumnName in (FirstName, LastName, Address, City, PhoneNo) 
) piv; 

請參考下面的鏈接,從行轉換的數據列的其他選項:

https://www.sqlshack.com/multiple-options-to-transposing-rows-into-columns/

+0

MySQL中沒有'pivot' – Avery235