我正在为不同的查询重新调整表格结果,但每个表格都采用相同的格式,并且都将在一个最终表格中。如果我希望查询1的结果首先列出,查询2秒等,那么最简单的方法是什么?
UNION是附加表还是随机组合?
答案 0 :(得分:4)
除非在order by子句中明确调用,否则SQL标准不保证订单。在实践中,这通常按时间顺序返回,但如果订单很重要,我不会依赖它。
在工会中你可以像这样控制订单......
select
this,
that
from
(
select
this,
that
from
table1
union
select
this,
that
from
table2
)
order by
that,
this;
答案 1 :(得分:1)
UNION将第二个查询附加到第一个查询,因此您首先拥有所有第一行。
答案 2 :(得分:1)
您可以使用:
SELECT Col1, Col2,...
FROM (
SELECT Col1, Col2,..., 1 AS intUnionOrder
FROM ...
) AS T1
UNION ALL (
SELECT Col1, Col2,..., 2 AS intUnionOrder
FROM ...
) AS T2
ORDER BY intUnionOrder, ...