gpt4 book ai didi

mysql - 如何从父表复制到子表,其中 1 列分为 3 个不同的列

转载 作者:行者123 更新时间:2023-12-04 08:26:22 24 4
gpt4 key购买 nike

我有一个如下所示的表格列

Name
a
b
c
d
e
f
现在我想将此列分为 3 列,如
Name1 | Name2 | Name3
a | c | f
b | d | e
SQL 查询将如何进行?

最佳答案

在 MySQL 8+ 上,你可以使用 ROW_NUMBER以此目的:

WITH cte AS (
SELECT Name, ROW_NUMBER() OVER (ORDER BY Name) - 1 rn
FROM yourTable
)

SELECT
MAX(CASE WHEN FLOOR(rn / 2) = 0 THEN Name END) AS Name1,
MAX(CASE WHEN FLOOR(rn / 2) = 1 THEN Name END) AS Name1,
MAX(CASE WHEN FLOOR(rn / 2) = 2 THEN Name END) AS Name3
FROM cte
GROUP BY
rn % 2
ORDER BY
rn % 2;
screen capture from demo link below
Demo
与联合相比,这种方法的优势在于它可以轻松扩展以根据需要支持更多行和列。

关于mysql - 如何从父表复制到子表,其中 1 列分为 3 个不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65245476/

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