gpt4 book ai didi

mysql - SQL - 在 Mysql 中将一列拆分为两列

转载 作者:可可西里 更新时间:2023-11-01 07:55:42 25 4
gpt4 key购买 nike

我有这张 table 。考虑到 id 从 0 开始。

表一

ID     Letter1        A2        B3        C4        D6        E

我需要以下输出

Col1     Col2NULL      AB         CD         NULLE         NULL

我尝试使用带有 id、id - 1 和 id + 1 的联合,但我无法弄清楚如何根据 id 获取字母,甚至尝试了奇怪的逻辑,但没有任何效果。

感谢任何帮助。

谢谢

最佳答案

您没有发布数据库引擎,所以我假设模数操作数为 % 的 PostgreSQL。

查询应该是:

select o.letter, e.letter
from (
select id, letter, id as base from my_table where id % 2 = 0
) o full outer join (
select id, letter, (id - 1) as base from my_table where id % 2 <> 0
) e on e.base = o.base
order by coalesce(o.base, e.base)

请对以下选项持保留态度,因为我没有办法在 MySQL 5.6 中对其进行测试。在没有完全外连接的情况下,您可以执行两个外连接,然后将它们合并,如:

select * from (
select o.base, o.letter, e.letter
from (
select id, letter, id as base from my_table where id % 2 = 0
) o left join (
select id, letter, (id - 1) as base from my_table where id % 2 <> 0
) e on e.base = o.base
union
select e.base, o.letter, e.letter
from (
select id, letter, id as base from my_table where id % 2 = 0
) o right join (
select id, letter, (id - 1) as base from my_table where id % 2 <> 0
) e on e.base = o.base
) x
order by base

关于mysql - SQL - 在 Mysql 中将一列拆分为两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52766533/

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