如何在UNIONS之间的SQL中放置ORDER BY子句
|
我想实现将返回排序列表的简单SQL查询。问题是我将
ORDER BY
子句放在任何地方时都出现语法错误。
SELECT
fr.FunctionRoleID, fr.FunctionRoleInternalName
FROM
users u
JOIN
UserRoles ur ON ur.UserID = u.UserID
JOIN
Roles_FunctionRoles rfr ON rfr.RoleID = ur.RoleID
JOIN
FunctionRoles fr ON fr.FunctionRoleID = rfr.FunctionRoleID
WHERE
u.UserName = @UserName
AND u.Active = 1
UNION
SELECT
fr.FunctionRoleID, fr.FunctionRoleInternalName
FROM
Roles r
JOIN
Roles_FunctionRoles rfr ON rfr.RoleID = r.RoleID
JOIN
FunctionRoles fr ON fr.FunctionRoleID = rfr.FunctionRoleID
WHERE
r.RoleName = \'Authenticated Users\'
AND @UserName IS NOT NULL
AND LEN(@UserName) > 0
我要插入的内容:
ORDER BY fr.DisplayName ASC
编辑
如果我使用创建子查询
SELECT *
FROM
(
[my initial query]
)
ORDER BY
[COLUMN NAME] ASC
我收到以下错误消息:
\'ORDER \'附近的语法不正确。预期的\'AS \',\'ID \'或\'QUOTED_id \'
没有找到相关结果
已邀请:
6 个回复
犯痪桂涛杭
惭法搽
骂狮淋唐便
我不在IDE的前面,因此语法可能有点过时,但这就是这个主意。 e:是的,想通通了语法...加了别名:)
缮记箔
,因此无法将其用于
a10ѭ派生的集合。如果要订购它,并从结果中忽略它;
净爽
基本上,您是根据UNION的结果进行选择,然后执行ORDER BY ...请注意,我使用\“ FunctionRoleInternalName \” ...仅当将其用作列时,才可以将其更改为\“ DiaplayName \” UNION查询中的ALIAS ...例如\“ FunctionRoleInternalName AS DisplayName \”
刷遍派戳