2013-11-26 37 views
0

我正在處理數據庫遷移...其中我正在根據SQL更改quires。 所以查詢應該適用於所有數據庫。 這裏是查詢,我可以在所有數據庫中工作。是否有任何方式在所有數據庫中的SQL Server中作爲整數工作

select STD_ID from SCHOOL order by cast(STD_ID as integer) 

這是查詢SQL Server 2008中工作正常,但它是不工作的MySQL, 有沒有辦法來改變上述查詢應該對所有數據庫。

+0

目前還不清楚你在問什麼。你在尋找一個適用於SQL Server和MySQL的查詢嗎?這是可能的,但我們需要了解更多以幫助您。你可以分享SCHOOL的CREATE TABLE語句和一些帶有樣本數據的INSERT語句嗎? –

+0

對mysql使用'SIGNED'或'UNSIGNED'。 – OGHaza

+1

[不可能在不改變語義的情況下使用單個查詢](http://stackoverflow.com/a/8895995/73226)。 'cast(STD_ID作爲DECIMAL(10,0))'可以在兩者中工作,但可能會導致其他問題。 –

回答

1

假設STD_ID是某種形式的字符串,你可以使用:

select STD_ID from SCHOOL order by STD_ID+0 

我已經與MySQL和SQLServer的測試,這對SQLFiddle,他們似乎都正確地做一個隱式轉換爲INT

+0

+1非常討厭,但工程! –

相關問題