我有一个SQL查询,我正在尝试编写,现在有点卡住了如何编写order by子句。如何编写此SQL订单子句
基本上我从中选择的表具有严重性值的项目。我想要选择这些项目并对它们进行排序,以便Severity列的顺序为严重性1-4,然后为0,并且日志日期为每个下降。
严重性1最高4最低,0表示未分配的严重性,我需要显示这些项目最高严重性,最早的项目第一,最低的严重性,最新的项目最后。
我到目前为止查询:
SELECT
[TicketID],
[type],
[Product],
[Description],
[LoggedBy],
[LogDate],
[Department],
[AssignedTo],
[Severity],
[Status],
[LastUpdatedBy],
[LastUpdatedDate]
FROM
SupportTicketsTbl
WHERE
TicketID NOT IN
(
SELECT
tck.ticketID
FROM
SupportTicketsTbl tck
JOIN
tblTicketsInEvents tie
ON
tck.TicketID = tie.ticketID
JOIN
tblSupportEvent ev
ON
tie.eventID = ev.id
where
ev.type = 1
)
AND
Status <> 'Complete'
我想最简单的方法是创建一个表变量,并选择所有不在0到它在我想要的顺序的项目,然后选择所有0项到我的表变量,最后只是选择一切从表变量,但这似乎有点凌乱,所以即时通讯想知道是否有一个更优雅的解决方案?
由于
谢谢,多数民众赞成我认为id必须做的,我只是希望有一种方法可以做到这一点在一个ORDER BY等,而不必使用UNION – Purplegoldfish
这是行不通的。按顺序排列整个结果。 – Eric
ORDER BY需要与UNION的单个查询一起放在括号内,这通常会起作用。 (不知道是否总是会工作,虽然...) –