使用Union的SQL顺序

时间:2013-10-23 18:59:39

标签: sql sql-order-by union

我想从两个查询中选择结果的并集。 我要做的是选择一个具有特定约束的条目,然后通过其他约束添加剩余的顺序。

我尝试做Union,但第二次查询的顺序失败,因为它无法在子查询中排序。

所以我做的是声明一个表变量,然后插入单个条目,然后按约束插入其余的条目。

有没有办法使用union来做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以将结合在一起的查询的结果结束,然后执行排序。类似的东西:

SELECT MainQ.* FROM 
(
  (SELECT * FROM MyTable AS T1 WHERE MyField = 1)
  UNION 
  (SELECT * FROM MyTable AS T2 WHERE MyField = 2)
) AS MainQ
ORDER BY MainQ.TableID

答案 1 :(得分:0)

使用union语句作为子查询,然后从中进行选择。

Select * from
(select fields,1 as orderby from table
 union all 
  select fields,2 from as orderby table)a
where whatever
order by orderby,whatever

order by子句也可以大量定制...... How to define a custom ORDER BY order in mySQL

例如,对于mysql,