我正在編寫一個存儲過程,它包含一些列上有一些函數的SQL Select查詢和一個GROUP BY子句。 顯然,我必須在GROUP BY中重複這些函數,這會顯着降低代碼可讀性並增加冗餘。在WHERE或GROUP BY子句中使用列表別名
到目前爲止,我發現的替代方案是使用派生查詢,以便可以從「頂級」查詢中訪問「第二級」查詢中定義的別名。 我對這個解決方法感到滿意,因爲它增加了代碼的複雜性(和縮進),我覺得我不應該使用兩個查詢,當我可以使用單個返回所有數據時。
我google了一下,我發現這個頁面返回的子查詢(+關於創建一個視圖,但在大多數情況下這是矯枉過正)相同的提示。
我不能認真地認爲,2010年,有沒有其他的辦法,尤其是與所有的精力放在代碼的可重用性和可讀性已經持續了好幾年:會有人有一個優雅的提示我從來沒有聽說過(對於SQL Server 2005/2008),或者有過教育的猜測,爲什麼在2010年仍然應該這樣做?
謝謝。
匿名。
關於SQL,請使用構建最佳執行計劃並以最快速度運行的代碼,而不管縮進程度如何「漂亮」或重複多少次代碼。很多時候,「漂亮」的查詢會嚴重影響速度和性能。 – 2010-02-24 14:54:17