相关疑难解决方法(0)

SQL Server:带有UNION的子查询中的ORDER BY

我有两个查询与UNION ALL1组合:

--Query 1
SELECT Flavor, Color
FROM Friends
Run Code Online (Sandbox Code Playgroud)

 

--Query 2
SELECT Flavor,
    (SELECT TOP 1 Color
     FROM Rainbows
     WHERE Rainbows.StrangerID = Strangers.StrangerID
     ORDER BY Wavelength DESC
    ) AS Color
FROM Strangers
Run Code Online (Sandbox Code Playgroud)

当然,这两者都可以单独工作,但当与以下内容结合使用时UNION ALL:

SELECT Flavor, Color
FROM Friends

UNION ALL

SELECT Flavor,
    (SELECT TOP 1 Color
     FROM Rainbows
     WHERE Rainbows.StrangerID = Strangers.StrangerID
     ORDER BY Wavelength DESC
    ) AS Color
FROM Strangers
Run Code Online (Sandbox Code Playgroud)

查询失败并显示错误:


如果语句包含UNION运算符,则消息104,级别15,状态1,行3 ORDER BY项必须出现在选择列表中.

如何在UNION ALL的语句中使用ORDER BY?

复制 - 可粘贴示例

CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

sql-server union sql-server-2000 sql-order-by union-all

11
推荐指数
1
解决办法
2万
查看次数