當我編寫SQL查詢時,我發現自己經常會認爲「沒有辦法用單個查詢來做到這一點」。當發生這種情況時,我經常轉向存儲過程或使用臨時表(多種語言)的多語句表值函數,最後只需將結果合併並返回結果表即可。SQL查詢理論問題 - 單一語句與多語句查詢
我不知道是否有人知道,只是作爲一個理論問題,它是否應該是可以編寫一個返回一個結果集爲一個單一的查詢(而不是多個語句)的任何查詢。顯然,我忽略了諸如代碼可讀性和可維護性等相關問題,甚至可能會查詢性能/效率。這更多的是關於理論 - 是否可以這樣做......並且不用擔心,我當然不打算在多語句更適合所有情況下適合我的目的時開始強迫自己寫單語句查詢,但是這可能會讓我思考是否有可行的方法從單個查詢中獲得結果的兩倍或更長一點。
我想幾個參數是爲了 - 我正在考慮關係數據庫(如MS SQL)與表遵循常見的最佳做法(如所有表具有主鍵等)。
注:(參考材料纖維網或類似的東西),以贏得「接受的答案」這一點,你需要提供明確的證據
...或反例。 – 2010-01-06 19:16:19
在您回答這個問題之前,您需要對「SQL理論」中的含義有更多的具體說明。實踐中使用的SQL在DBMS和DBMS版本之間有所不同。您需要標準化一組標準的SQL結構。例如,你允許什麼類型的子查詢?此外,您可能希望抽象出一些細節,例如最常用的「SQL查詢理論」,它使用關係演算或代數作爲SQL的抽象,將表格視爲行集,而不是有序的行列表。 – reinierpost 2011-04-29 13:38:56