使用联合查询的结果顺序

时间:2012-05-11 16:58:31

标签: 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

我希望第一个结果始终作为第一行返回。这可能吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

select 1, count(datediff(yyyy,dob,admitdate) as counts
from myTable
where condition
union
select 2, count(datediff(yyyy,dob,admitdate) as counts
from myTable
where condition
order by 1