有没有办法结合两个表,但是保持第一个表中的行首先出现在结果集中?
例如:
表格1
name surname
-------------------
John Doe
Bob Marley
Ras Tafari
Run Code Online (Sandbox Code Playgroud)
表2
name surname
------------------
Lucky Dube
Abby Arnold
Run Code Online (Sandbox Code Playgroud)
我希望结果集为:
name surname
-------------------
John Doe
Bob Marley
Ras Tafari
Lucky Dube
Abby Arnold
Run Code Online (Sandbox Code Playgroud)
不幸的是,工会以某种方式重新排序表.有没有解决的办法?
pra*_*een 42
试试这个 :-
Select *
from
(
Select name,surname, 1 as filter
from Table1
Union all
Select name,surname , 2 as filter
from Table2
)
order by filter
Run Code Online (Sandbox Code Playgroud)
Dam*_*ver 12
保证输出顺序的唯一方法是使用ORDER BY:
SELECT name,surname,1 as rs
FROM table1
UNION ALL
SELECT name,surname,2
FROM table2
ORDER BY rs
Run Code Online (Sandbox Code Playgroud)
如果您不想rs出现在最终结果集中,请执行以下UNION子查询:
SELECT name,surname
FROM (
SELECT name,surname,1 as rs
FROM table1
UNION ALL
SELECT name,surname,2
FROM table2
) t
ORDER BY rs
Run Code Online (Sandbox Code Playgroud)
;WITH cte as (
SELECT name, surname, 1 as n FROM table1
UNION ALL
SELECT name, surname, 2 as n FROM table2
UNION ALL
SELECT name, surname, 3 as n FROM table3
)
SELECT name, surname
FROM cte
ORDER BY n;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20067 次 |
| 最近记录: |