我正在进行数据库迁移...我根据SQL改变了quires。 所以查询应该适用于所有数据库。 这是我可以在所有数据库中工作的查询。
select STD_ID from SCHOOL order by cast(STD_ID as integer)
这是在SQL SERVER 2008中正常运行的查询,但它不能正常运行MySQL, 有没有办法改变上面应该适用于所有数据库的查询。
答案 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强制转换为整数”产生了上述内容。