使用联合查询的结果顺序

woo*_*gie 3 sql

我有一个联合查询,它从两个不同的人群中获取计数.如何强制结果按查询中的顺序返回,而不是按升序/降序排列?

select count(datediff(yyyy,dob,admitdate) as counts
from myTable
where condition
union
select count(datediff(yyyy,dob,admitdate) as counts
from myTable
where condition
Run Code Online (Sandbox Code Playgroud)

我希望第一个结果总是作为第一行返回.这可能吗?

Jon*_*ler 5

您必须使用ORDER BY子句指定订单.在您的示例中,您可能会这样做:

SELECT 1 AS seq, COUNT(datediff(yyyy,dob,admitdate) as counts
  FROM myTable
 WHERE ...condition-1...
UNION
SELECT 2 AS seq, COUNT(datediff(yyyy,dob,admitdate) as counts
  FROM myTable
 WHERE ...condition-2...
 ORDER BY seq
Run Code Online (Sandbox Code Playgroud)