有没有办法在所有数据库的sql server中作为整数工作

时间:2013-11-26 11:44:49

标签: mysql sql database sql-server-2008 database-migration

我正在进行数据库迁移...我根据SQL改变了quires。 所以查询应该适用于所有数据库。 这是我可以在所有数据库中工作的查询。

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

这是在SQL SERVER 2008中正常运行的查询,但它不能正常运行MySQL, 有没有办法改变上面应该适用于所有数据库的查询。

2 个答案:

答案 0 :(得分:1)

假设STD_ID是某种字符串,您可以使用:

select STD_ID from SCHOOL order by STD_ID+0

我已经在SQLFiddle上使用MySQL和SQLServer对它进行了测试,他们似乎都正确地对INT进行了隐式转换。

答案 1 :(得分:0)

您应该查看关于强制转换的MySQL文档:http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast

看起来'整数'在MySQL中被称为'signed'(或者当然是'unsigned')。

我不是(我的)SQL向导,但是谷歌搜索“mysql强制转换为整数”产生了上述内容。