id | qns | ans
---+-------+----
1 | qns 1 | a
1 | qns 2 | b
2 | qns 1 | c
2 | qns 2 | d
我可以用什么SQL查询将上表转换成下表?
id | qns 1 | qns 2
---+-------+------
1 | a | b
2 | c | d
答案 0 :(得分: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/
答案 1 :(得分:-1)
您可以使用此关键字“在mysql中透视表格”
来搜索它或者你可以查看这个网址 http://stratosprovatopoulos.com/web-development/mysql/pivot-a-table-in-mysql/
注意:对不起我的英文