Как разместить предложение ORDER BY в SQL между UNIONS

Я хочу реализовать простой запрос 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

EDIT

Если я создаю подзапрос, используя

SELECT * 
FROM 
     (
     [my initial query]
     )
ORDER BY 
    [COLUMN NAME] ASC

Я получаю следующее сообщение об ошибке:

Неверный синтаксис рядом с 'ORDER'. Ожидается «AS», «ID» или «QUOTED_id»

5
задан marc_s 3 May 2015 в 08:15
поделиться