我正在處理數據庫遷移...其中我正在根據SQL更改quires。 所以查詢應該適用於所有數據庫。 這裏是查詢,我可以在所有數據庫中工作。是否有任何方式在所有數據庫中的SQL Server中作爲整數工作
select STD_ID from SCHOOL order by cast(STD_ID as integer)
這是查詢SQL Server 2008中工作正常,但它是不工作的MySQL, 有沒有辦法來改變上述查詢應該對所有數據庫。
我正在處理數據庫遷移...其中我正在根據SQL更改quires。 所以查詢應該適用於所有數據庫。 這裏是查詢,我可以在所有數據庫中工作。是否有任何方式在所有數據庫中的SQL Server中作爲整數工作
select STD_ID from SCHOOL order by cast(STD_ID as integer)
這是查詢SQL Server 2008中工作正常,但它是不工作的MySQL, 有沒有辦法來改變上述查詢應該對所有數據庫。
假設STD_ID
是某種形式的字符串,你可以使用:
select STD_ID from SCHOOL order by STD_ID+0
我已經與MySQL和SQLServer的測試,這對SQLFiddle,他們似乎都正確地做一個隱式轉換爲INT
。
+1非常討厭,但工程! –
你或許應該看看在MySQL文檔關於鑄造:http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast
它看起來像「整」被稱爲「簽署」(或課程的「簽名」)在MySQL。
我不是(我的)SQL嚮導,但做了一個谷歌搜索「mysql鑄成整數」產生了上述。
目前還不清楚你在問什麼。你在尋找一個適用於SQL Server和MySQL的查詢嗎?這是可能的,但我們需要了解更多以幫助您。你可以分享SCHOOL的CREATE TABLE語句和一些帶有樣本數據的INSERT語句嗎? –
對mysql使用'SIGNED'或'UNSIGNED'。 – OGHaza
[不可能在不改變語義的情況下使用單個查詢](http://stackoverflow.com/a/8895995/73226)。 'cast(STD_ID作爲DECIMAL(10,0))'可以在兩者中工作,但可能會導致其他問題。 –