我有一個sql查詢(使用Firebird作爲RDBMS),其中需要按字段排序結果。但是,我需要按照該領域的內容進行排序。即「NE」先走,「OE」走第二,「OP」走第三,空白走最後。不幸的是,我不知道如何實現這一點。我所做過的所有事情都是[字段] ASC/DESC,而沒有別的。按特定字段值排序SQL查詢
有什麼建議嗎?
編輯:我真的應該澄清:我只是希望在這裏瞭解更多。我現在擁有它,我只是有多個選擇語句來定義首先顯示哪個語句。查詢是相當大的,我真的很希望能有可能學習這樣做的更多effecient方式: 例如:
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='NE'
UNION
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='OE'
UNION
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='OP'
UNION (etc...)
Ñ建議的解決方案之一需要多個選擇/聯合。他們都應該更快,更容易維護,查詢將更容易閱讀。 – 2008-12-29 20:15:27
我和Peter LaComb一起參加這個節目。你爲什麼使用UNION?沒有必要 我會用SELECT * FROM Retail WHERE MTITLE LIKE'somethi%'和版本在('NE','OE','OP','')ORDER BY CASE EDITION當'NE'Then 1當'OE'然後2當'OP'然後3其他4結束 – Pulsehead 2008-12-30 16:01:02
@Pulsehead你可以找到答案,爲什麼我會在這個非常瞭解StackOverflow問題的地方使用聯合關於不知道排序字段的最佳方式。 – Cyprus106 2015-12-09 18:57:35