Ste*_*son 7 mysql oracle function
我有一个奇怪的情况.我必须在Oracle和MySQL中使用NVL(columna,columnb).我无法更改SQL,因为它在我无法编辑的包中,但它是我在MySQL和Oracle之间的应用程序中唯一不起作用的东西.
我如何在MySQL中编写NVL().我看过这里(http://dev.mysql.com/doc/refman/5.0/en/create-function-udf.html)看起来我必须用C编写并将其链接到MySQL.
但是http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html似乎说我可以在不编译添加的情况下完成.
我试过这个,但它不起作用.我做错了什么?
CREATE FUNCTION NVL (first DATETIME, second DATETIME)
RETURNS DATETIME
begin
DECLARE first DATETIME;
DECLARE second DATETIME;
DECLARE return_value DATETIME;
SET return_value = IFNULL(first,second);
RETURN return_value;
end
Run Code Online (Sandbox Code Playgroud)
Qua*_*noi 10
使用COALESCE,它更简单:
DELIMITER $$
CREATE FUNCTION NVL (first DATETIME, second DATETIME)
RETURNS DATETIME
BEGIN
RETURN COALESCE(first, second);
END
$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10942 次 |
| 最近记录: |