sql - 在 SQL 中将一行拆分为两部分的问题
问题描述
我想将一行分成两部分,我使用的是 UNION ALL。我得到了这两个部分,但结果不是我想要的。顺序乱了 我想要#3 和#4 行开关,以及#7 和#8 行开关位置。
原始行:
TIME, ORDER_NUM, THICKNESS, FORMULATION, SILO, SCREWOIL1_TEMP, SCREWOIL2_TEMP, MELTING_TEMP, FEEDER_LB, FEEDER_RPM, COMPOUND, RECLAIM_PERCENTAGE
所需的顺序应该是:
第一排:
TIME, ORDER_NUM, THICKNESS, FORMULATION, SILO, SCREWOIL1_TEMP, SCREWOIL2_TEMP
第二行:
TIME, MELTING_TEMP, FEEDER_LB, FEEDER_RPM, COMPOUND, RECLAIM_PERCENTAGE
解决方案
如果要交错记录,则需要额外的排序键。
select TIME, ORDER_NUM, THICKNESS, FORMULATION, SILO, SCREWOIL1_TEMP, SCREWOIL2_TEMP, MELTING_TEMP, FEEDER_LB, FEEDER_RPM, COMPOUND, RECLAIM_PERCENTAGE
from ((select TIME, ORDER_NUM, THICKNESS, FORMULATION, SILO, SCREWOIL1_TEMP, SCREWOIL2_TEMP, MELTING_TEMP, FEEDER_LB, FEEDER_RPM, COMPOUND, RECLAIM_PERCENTAGE,
1 as priority
from . . .
) union all
(select TIME, MELTING_TEMP, FEEDER_LB, FEEDER_RPM, COMPOUND, RECLAIM_PERCENTAGE,
2
from . . .
)
) t
order by time, priority;
请注意,列标题均取自union all
. 结果集中的所有行都具有相同的列名。
推荐阅读
- python - 为什么 Qt for Python 即使是一张小桌子也如此缓慢?
- arrays - 使用递归交换数组中的相邻元素
- javascript - 时刻时区在服务器端没有按预期工作
- python - 如何在python tkinter中将.get()所有输入框插入sqlite 3
- python - 发生异常:AttributeError 'str' object has no attribute 'descendants'
- mysql - 如何显示 MYSQL DB 中不为空的记录?
- android - Firebase 插件导致 APK 变大 - Flutter
- git - 如何使用 PR 进行 git reset --hard?
- flutter - 无法获取有关在颤动 Firebase 中使用位置的文档(云 Firestore)
- django - Django添加新列并根据另一个表列值分配值