当数据来自许多选择和联合在一起时,是否有可能进行排序?如
Select id,name,age
From Student
Where age < 15
Union
Select id,name,age
From Student
Where Name like "%a%"
如何按名称对此查询进行排序?
我试过了
Select id,name,age
From Student
Where age < 15 or name like "%a%"
Order by name
但这并不奏效。
正如其他答案所述,在最后一个UNION之后的ORDER BY应该适用于由UNION连接的两个数据集。
我有两个使用不同表但相同列的数据集。上一个联盟之后的命令仍然没有起作用。
为ORDER BY子句中使用的列使用别名可以达到目的。
SELECT Name, Address FROM Employee
UNION
SELECT Customer_Name, Address FROM Customer
ORDER BY customer_name; --Won't work
解决方案是使用别名User_Name,如下所示:
SELECT Name AS User_Name, Address FROM Employee
UNION
SELECT Customer_Name AS User_Name, Address FROM Customer
ORDER BY User_Name;