我想从两个查询中选择结果的并集。我要做的是选择一个具有特定约束的条目,然后通过其他约束添加剩余的顺序。
我尝试进行联合,但第二个查询的 order by 失败,因为它无法对子查询进行排序。
所以我所做的是声明一个表变量,然后插入单个条目,然后按约束顺序插入其余条目。
有没有办法使用联合来做到这一点?
我想从两个查询中选择结果的并集。我要做的是选择一个具有特定约束的条目,然后通过其他约束添加剩余的顺序。
我尝试进行联合,但第二个查询的 order by 失败,因为它无法对子查询进行排序。
所以我所做的是声明一个表变量,然后插入单个条目,然后按约束顺序插入其余条目。
有没有办法使用联合来做到这一点?
You could just wrap up the results of the queries that are unioned together and then perform the sort. Something like:
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
使用联合语句作为子查询,然后从中选择。
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 子句也可以大量自定义... 如何在 mySQL 中定义自定义的 ORDER BY 顺序
以 mysql 为例。