2012-01-25 111 views
-3

我使用order bycolumn alias有選擇查詢。的Sql 2000〜2008年

我們計劃升級SQL 2000至2008年

我覺得column alias沒有在2008年支持我已經寫SELECT查詢,將工作按預期在這兩個SQL 2000和2008年

+3

「我認爲列別名未在2008年支持」 - 你爲什麼這麼認爲? – Oded

+0

@ user1063555:您是否嘗試過運行,你認爲會在2008年的SQLServer問題的查詢? –

+0

你走的是正確的道路,但你沒有很好地問這個問題。看到我的回答爲行爲差異,我認爲你的意思是 – gbn

回答

3

order bycolumn alias在SQL SERVER支持2008

+0

看到我的答案爲什麼OP是爲了什麼 – gbn

0

涌上來this Documentation列的別名在comination通過支持與秩序,除了如果你需要,你應該表現出一些代碼,你所面臨的問題,任何converstion幫助

0

無論是在2008年嘗試升級支持,如果失敗 - 尋找其他原因。

2

排序方式列別名在SQL 2008的支持(我只是測試這是絕對肯定這是真的。)

此外,您還可以重複用於列的表達式,數據庫會認識它是相同的表達式並重新使用結果而不是再次評估它。您也可以按順序使用列索引,例如:

order by 1, 4 

您很少會遇到在更新到新版本時停止工作的查詢。隨着新版本的增加,大多數功能。有一些功能已更改,但您可以設置數據庫的兼容模式,以便在需要時支持舊版本的功能。

+0

請參閱我的答案爲什麼OP是東西 – gbn

1

列別名支持所有版本。然而,有差如何列名和別名在ORDER BY得到解決。

看到"Behavior Changes to Database Engine Features in SQL Server 2005"

「ORDER BY子句」嚴格地說,ORDER BY子句應在SELECT和FROM子句可以明確的列名和別名只經營。 SQL Server 2005+符合這一點,但SQL Server 2000允許含糊不清。因此,行爲改變

SQL Server upgrade advisor會發現這和其他問題你

+0

你得到了這個倒退。 'by by'子句應該*不*僅在'select'子句列上操作。您不必在'select'子句中包含一個字段來對其進行排序。 – Guffa

+0

@Guffa:沒錯,它的措辭很糟糕。現在正確。行爲改變雖然存在 – gbn

相關問題