在这个查询中使用to_number()
oracle。如何为 oracle 和 mysql 数据库编写兼容性查询。
SELECT col1 FROM table WHERE condition ORDER BY TO_NUMBER(col2);
这col2
是varchar2
数据类型。假设我ORDER BY
在这个查询中使用的命令必须使用转换功能,即to_number(col2)
这个功能在 mysql.so 中不可用。所以请为上述问题提供正确的解决方案
在您的 mysql 数据库中创建一个自定义函数,其名称to_number
采用相同的参数并返回 integer 。
然后,您可以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 中使用您的查询
你可以用 CAST 做到这一点
select id,num type, details,CAST(num AS SIGNED) as T
from demo order by T
SQL 小提琴链接
欲了解更多信息:http ://dev.mysql.com/doc/refman/5.0/en/cast-functions.html