在同一SQL语句中使用ORDERBY和UNION ALL

在同一SQL语句中使用ORDERBY和UNION ALL,sql,sql-server,Sql,Sql Server,为什么这不能带来预期的结果 SELECT top 1 CITY, LEN(CITY) FROM STATION ORDER BY LEN (city) desc union all SELECT top 1 CITY, LEN(CITY) FROM STATION ORDER BY LEN (city) asc; 每个有序查询都需要表示为子查询,因为union不能遵循order by,因此: select a.* from (select top 1 city, len(city) from

为什么这不能带来预期的结果

SELECT top 1 CITY, LEN(CITY) FROM STATION ORDER BY LEN (city) desc
union all 
SELECT top 1 CITY, LEN(CITY) FROM STATION ORDER BY LEN (city) asc;

每个有序查询都需要表示为子查询,因为
union
不能遵循
order by
,因此:

select a.* from (select top 1 city, len(city) from station order by len(city) desc) a
union all 
select b.* from (select top 1 city, len(city) from station order by len(city)) b

你能回答一下你的问题吗?你希望这份声明会有什么结果?在不知道您在寻找什么的情况下,任何人都很难帮助您。请发布示例数据和预期结果。您的预期结果是什么???看起来这个问题是来自HackerRank的sql任务,有很多“从站点表中选择某些内容”任务=),这个答案绝对可以接受。