我有一个联合查询,它从两个不同的人群中获取计数。如何强制按照查询中的顺序返回结果,而不是按升序/降序返回?
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
我希望第一个结果始终作为第一行返回。这可能吗?
答案 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