gpt4 book ai didi

mysql - MySQL 中的反透视表

转载 作者:行者123 更新时间:2023-11-29 04:32:14 24 4
gpt4 key购买 nike

我有如下表格

CREATE TABLE unpivot_table (
FirstName varchar(100) NOT NULL,
LastName varchar(100) NOT NULL,
query1 varchar(200) NOT NULL,
result1 varchar(200) NOT NULL,
query2 varchar(200) NOT NULL,
result2 varchar(200) NOT NULL,
query3 varchar(200) NOT NULL,
result3 varchar(200) NOT NULL,
query4 varchar(200) NOT NULL,
result4 varchar(200) NOT NULL,
query5 varchar(200) NOT NULL,
result5 varchar(200) NOT NULL
)

我正在尝试将上表反转为下表的样子

CREATE TABLE UnPivoted (
FirstName varchar(100) NOT NULL,
LastName varchar(100) NOT NULL,
query varchar(200) NOT NULL,
result varchar(200) NOT NULL
)

在 MSSQL 中我可以通过使用下面的查询来实现这一点

SELECT unpivot_table.FirstName, unpivot_table.LastName, 
CrossApplied.query, CrossApplied.result
FROM unpivot_table
CROSS APPLY (VALUES (query1, result1),
(query2, result2),
(query3, result3),
(query4, result4),
(query5, result5))
CrossApplied (query, result);

但我在 MySQL 中需要这个,而在这个查询中使用的“交叉应用”不在 MySQL 中。

根据我的研究,我发现“横向”是从 MySQL 8.0.14 开始由 mysql 引入的,它可以用作“交叉应用”的替代方法,但我未能编写查询。

请帮助在 MySQL 中实现这一目标。

提前致谢。

最佳答案

你可以使用union all

select FirstName, LastName,query1, result1 from unpivot_table
union all
select FirstName, LastName,query2, result2 from unpivot_table
union all
select FirstName, LastName,query3, result3 from unpivot_table
union all
select FirstName, LastName,query4, result4 from unpivot_table

关于mysql - MySQL 中的反透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58850386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com