sql - 我想为每个选择查询获取数据“order by”,然后使用“Union All”将它们组合起来
问题描述
我有两个临时表(#TempA、#TempB)。每个临时表都有少量记录,格式为 1、2 和 3。每个订单都有多个记录/行。
例如:
温度A
===========================
C1 C2 C3 FormOrder
===========================
abc xyz lmn 1
------------------------
anc ppl nmp 2
----------------------
acc bbl mnp 3
-----------------------
同样,TempB 也很少有相同格式的记录。
在将这两个临时表与使用 union all 结合时,我正在获取数据。但数据不是从#TempA 表中按顺序排列的。
我尝试在选择查询的末尾添加“排序依据”,但我以不同的方式获得结果。
不使用排序方式:
select * from #TempA
Union All
select * from #TempB
结果:
===========================
C1 C2 C3 FormOrder
===========================
abc xyz lmn 1
-----------------------
acc bbl mnp 3
----------------------
anc ppl nmp 2
----------------------
xyz ccc nnn 1
------------------------
xyn klm uul 2
------------------------
cpp klm rnp 3
------------------------
这里缺少来自#TempA 的订单。所以当我尝试使用 Order By
select * from #TempA
Union All
select * from #TempB
Order by FormOrder
结果:
==========================
C1 C2 C3 FormOrder
============================
abc xyz lmn 1
---------------------------
xyz ccc nnn 1
----------------------------
anc ppl nmp 2
----------------------------
xyn klm uul 2
--------------------------
acc bbl mnp 3
-----------------------------
cpp klm rnp 3
-------------------------
我收到了上述订单,但我期望订单为 1,2,3,它们来自 TempA 1,2, 3 来自 TempB。
============================
C1 C2 C3 FormOrder
============================
abc xyz lmn 1
--------------------------
anc ppl nmp 2
-------------------------
acc bbl mnp 3
-----------------------
xyz ccc nnn 1
-------------------------
xyn klm uul 2
---------------------------
cpp klm rnp 3
------------------------
我怎样才能做到这一点?非常感谢任何帮助。
解决方案
您可以执行以下操作:
SELECT *
FROM (
SELECT 'A' AS Source, * from #TempA
Union All
select 'B', * from #TempB
) SEL
Order by Source
, FormOrder
当然,您不应该使用SELECT *
,因为其中一张表可能会改变结构。
推荐阅读
- c++ - 在没有基指针的情况下调用虚函数是否合法
- r - 如何将一行数据转换为百分比?R
- ruby-on-rails - Rails v6.0,新应用程序——脚手架在设置时生成控制器测试错误
- karate - karate 0.9.5 版本不再在黄瓜报告中打印授权的整个有效载荷
- java - 如何根据列表中的属性对对象列表进行排序
- php - Wp_Query 未显示精选帖子
- php - shell_exec 不使用“作曲家自我更新”
- html - 如何在反应中修复背景图像的大小
- postgresql - 将多个 SQL 命令通过管道传输到 psql CLI
- spring-integration - 行号:54;列号:26;匹配的通配符是严格的,但找不到元素“int:scatter-gather”的声明