兼容性查询to_number()

时间:2013-07-22 05:19:15

标签: mysql oracle

在oracle中使用to_number()的查询中。如何为oracle和mysql数据库编写兼容性查询。

SELECT col1 FROM table WHERE condition ORDER BY TO_NUMBER(col2);

此处col2varchar2数据类型。假设我在这个查询中使用ORDER BY命令必须使用转换函数,即to_number(col2),这个函数在mysql中没有。所以请为上面的问题提供正确的解决方案

2 个答案:

答案 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