在SQL查询中是否可以在UNION
order by 1
SELECT * FROM table1 WHERE etc='1' ORDER BY 11;
我们可以在11旁边添加一个联合选择查询吗?
SELECT * FROM table1 WHERE etc='1' ORDER BY 11 UNION select etc etc etc ...;
答案 0 :(得分:2)
在MySQL中,您可以在子查询中包含order by子句,并将多个子查询的结果合并在一起;像这样的东西:
SELECT * FROM (SELECT * FROM table1 WHERE etc='1' ORDER BY 11) sq1
UNION ALL
SELECT * FROM (SELECT * FROM table2 WHERE etc='2' ORDER BY 12) sq2
...
答案 1 :(得分:1)
也许是这样的:
SELECT
*,
11 AS orderby
FROM
table1
WHERE
etc='1'
UNION
select
*,
10 AS orderby
FROM
table2
ORDER BY
orderby
答案 2 :(得分:0)
您可以这样使用:
SELECT * FROM table1 WHERE etc='1'
union
SELECT * FROM table1 WHERE etc='1'
ORDER BY any_column
答案 3 :(得分:0)
您只能在最后ORDER BY
之后的查询末尾使用union
。基本上所有SELECT
都先完成,然后整个结果集被排序。