在oracle中使用to_number()
的查询中。如何为oracle和mysql数据库编写兼容性查询。
SELECT col1 FROM table WHERE condition ORDER BY TO_NUMBER(col2);
此处col2
是varchar2
数据类型。假设我在这个查询中使用ORDER BY
命令必须使用转换函数,即to_number(col2)
,这个函数在mysql中没有。所以请为上面的问题提供正确的解决方案
答案 0 :(得分:3)
在名为to_number
的mysql数据库中创建一个自定义函数,该函数使用相同的参数并返回整数
然后,您可以在自定义函数
cast
函数
DELIMITER $$
DROP FUNCTION IF EXISTS to_number$$
CREATE FUNCTION to_number (number VARCHAR(10)) RETURNS INT (11)
BEGIN
RETURN (CAST(number AS SIGNED));
END$$
DELIMITER ;
这将创建一个自定义/用户定义的函数,其中to_number作为名称
然后你可以在oracle和mysql中使用你的查询
答案 1 :(得分:1)
你可以用CAST
来做select id,num type, details,CAST(num AS SIGNED) as T
from demo order by T
SQL小提琴link
了解更多信息:http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html