我運行一個相當長的SQL查詢,其核心是非常基本的:SQL排序CHARINDEX()
SELECT * FROM documents WHERE doc_id IN (995,941,940,954,953,973)
這個查詢我的目標結果以隨後顯示的順序文件中,他們在IN子句中設置。但是,我還沒有找到一個乾淨的解決方案。
我想我可以使用charindex()來處理這個。
ORDER BY charindex('995,941,940,954,953,973',doc_id)
該ORDER BY的結果只是以默認的ASC順序命令doc_ids。
關於如何明確定義結果的任何指導可以爲此查詢命令?
有幾種想法,也許有人可能想要編寫代碼,但這是一個痛苦。無論如何,您可以使用臨時表爲您的IN子句中的值創建一個順序,並使用http://social.msdn.microsoft.com/forums/en-US/transactsql/thread將它們解析到臨時表中/ 4126a010-6885-4eb0-b79c-c798c90edb85。另一種方法是使用遊標並逐行返回。臨時表可能更快。 – RandomUs1r 2013-02-25 17:09:40