说明:
-
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等关键字。