mysql - SQL - 在 Mysql 中将一列拆分为两列
问题描述
我有这张桌子。考虑到 id 从 0 开始。
表格1
身份证件 1个 2乙 3℃ 4 天 6 乙
我需要以下输出
Col1 Col2 空 公元前 D 空 E 空
我尝试使用带有 id、id - 1 和 id + 1 的 union,但我不知道如何根据 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
推荐阅读
- sql - 我可以在case语句中使用列名作为参数吗
- python - 如何在Python中按字典值对字典列表进行部分排序
- python - 如何将 Content-disposition 标头设置为文件部分的附件?
- caching - 如何清理 WebSphere Application 服务器的缓存?
- javascript - node.js 中的 TypeError:无法读取未定义的属性“0”
- intellij-idea - 在 IntelliJ IDE 中禁用源文件预览窗口
- vim - vim中的键映射但vim仿真
- python - 从 2 个不同的字符串中提取特定文本
- angular - Webpack 生产构建 - 捆绑文件太大
- swift - 标题没有显示,每次我连接源并委托程序都会崩溃,当我不连接它们时它不会打印任何东西