这是一个有点奇怪的用例,但是你如何按字母顺序排列这样一个简单联合的结果呢?
select name
from Reviewer
union
select model
from Car;
答案 0 :(得分:6)
具有讽刺意味的是,在许多数据库中,您的查询将按字母顺序返回值。排序是在union
重复删除期间完成的。
当然,你不能依赖它。因此,您应该包含order by
子句:
select name
from Reviewer
union
select model
from Car
order by name;
order by
适用于完整的union
。列名来自第一个子查询。
答案 1 :(得分:3)
select val
from (
select name as val
from Reviewer
union
select model as val
from Car
) as x
order by val
答案 2 :(得分:1)
以下是设置alias
和ORDER BY
的方法:
SELECT
name AS NameModel
FROM Reviewer
UNION
SELECT
model AS NameModel
from Car
ORDER BY
NameModel;
在ORDER BY
之后评估UNION
。
答案 3 :(得分:1)
你的sql:
select name
from Reviewer
union
select model
from Car;
答案1:
select name from Reviewer
union
select model from Car
order by name;
答案2:
select * from
(select name "id" from Reviewer
union
select model from Car) x
order by x.id;
答案 4 :(得分:0)
select val
from (
select name as val
from Reviewer
union
select model as val
from Car
) as x
order by val
我的答案和以上都是一样的。在SQL中,我们可以用不同的方式编写。
我们也可以忽略as
运算符。