0
点赞
收藏
分享

微信扫一扫

总结MySQL和Oracle的语法区别

時小白 2022-04-24 阅读 109

说明:

  • nvl:基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1。

  • nvl2:nvl2函数的是nvl函数的拓展,基本语法为nvl2(E1,E2,E3),意思是E1为null,就返回E3,不为null就返回E2。

  • IFNULL:基本语法为IFNULL(E1,E2),假如E1不为NULL,则返回值为E1,否则为E2。

  • COALESCE:COALESCE(value,…)是一个可变参函数,可以使用多个参数。作用:接受多个参数,返回第一个不为NULL的参数,如果所有参数都为NULL,此函数返回NULL;当它使用2个参数时,和IFNULL函数作用相同。

[](()3、长度函数

| mysql | oracle |

| :-- | :-- |

| char_length(str) | length(str) |

[](()4、条件函数

| mysql | oracle |

| :-- | :- 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 - |

| IFNULL | nvl |

| IF(expr1,expr2,expr3) | nvl2 |

| IF(value=val1, val2, val3)、case when | DECODE |

说明:

  • IF(expr1,expr2,expr3):如果expr1不为null,则返回expr2,否则返回expr3。

  • IF(value=val1, val2, val3):如果value等于val1,则返回val2,否则返回val3。

  • case when then else end:如果value等于if1,则返回val1,如果value等于if2,则返回value2…如果value等于ifn,则返回valn,否则返回val。

SELECT

CASE WHEN STATUS = ‘1’ THEN ‘success’

WHEN STATUS = ‘0’ THEN ‘faild’

ELSE ‘error’ END

FROM SYS_SCHEDULER

[](()5、trunc()函数

| MySQL | Oracle |

| :-- | :-- |

| truncate(123.123,2) | TRUNC(123.123,2) |

[](()6、字符串整型转换函数

| | MySQL | Oracle |

| :-- | :-- | :-- |

| 整型转字符串 | CAST(123 AS CHAR(3)) | to_char(123) |

| 字符串转整型 | cast(‘123’ as SIGNED) | to_number(‘123’) |

[](()7、引号

MySQL可识别双引号和单引号,Oracle只能识别单引号。

[](()8、字符串连接符

| MySQL | Oracle |

| :-- | :-- |

| concat(studentname, ‘=’, studentno) | studentname||’=’||studentno |

[](()9、空数据排序

MySQL

select * from USER A order by IF(ISNULL(A.REMARK),1,0),A.REMARK desc

select * from USER A order by IF(ISNULL(A.REMARK),0,1),A.REMARK desc

Oracle

SELECT * FROM USER A ORDER BY A.REMARK DESC NULLS FIRST

SELECT * FROM USER A ORDER BY A.REMARK DESC NULLS LAST

[](()10、表(左/右)关联

Oracle左连接、右连接可以使用(+)来实现,MySQL只能使用left join ,right join等关键字。

举报

相关推荐

0 条评论