SQL:如何按字母顺序排序联合?

时间:2015-08-06 11:38:26

标签: sql

这是一个有点奇怪的用例,但是你如何按字母顺序排列这样一个简单联合的结果呢?

select name 
from Reviewer
union
select model
from Car; 

5 个答案:

答案 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)

以下是设置aliasORDER 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运算符。