我有一個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的單個查詢一起放在括號內,這通常會起作用。 (不知道是否總是會工作,雖然...) –