Oracle转Mysql需要注意的地方

来源:互联网 发布:饥荒数据修改大全 编辑:程序博客网 时间:2024/05/03 02:53

一、nvl()函数:

(1)oracle中的nvl()函数:

语法:

nvl(expr1,expr2)

含义:

如果expr1为空那么返回expr2,如果expr1值不为空,则返回expr1。

(2)mysql中的”nvl()”函数:

语法:

if null(expr1,expr2)

含义:

如果expr1为空那么返回expr2,如果expr1值不为空,则返回expr1。

二、decode()函数:

(1)oracle中的decode()函数:

语法:

decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,默认值)

含义:

当条件的值等于值1的时候,返回值1,当条件的值等于值2的时候,返回值2,当条件的值等于值n的时候,返回值n,如果条件与值1-值n都不想等,则返回默认值。相当于java中的if-else。

(2)mysql中的”decode()”函数:

语法:

ifnull(
           etl(
                 filed(col,…)
                                        )
                                            )

filed函数:

语法:filed(str,str1,str2,str3……..)

含义:返回str在str1,str2,str3…..中的位置,假如str=str1,则返回1,;假如str=str2,则返回2。。。。。假如str1-strn中都没有str的值,则返回0。

注意:如果str 为NULL,则返回值为0 ,原因是NULL不能同任何值进行同等比较。

elt函数:

语法:elt(N,str1,str2,str3,…strn)

含义:如果N=1,则返回str1,N=2,则返回str2,N>n,,则返回null。

ifnull函数:

语法:if null(expr1,expr2)

含义:如果expr1为空那么返回expr2,如果expr1值不为空,则返回expr1。

总结以上三个函数:

decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,默认值)

等价于:

ifnull(elt(filed(条件,值1,值2….值n),返回值1,返回值2…..返回值n),默认值)

三、分页:

(1)oracle中的分页:

语法:

select * from(select t.* ,rownum r from 表名 t)where r>10 and r<20;

注意:

(1)表名必须要取别名:表名 t
(2)*前面必须要指明表的别名
(3)rownum 这个字段必须要用别名:,rownum r
(4)分页的范围必须要用别名进行判断: r>10 and r<20

(2)mysql中的分页:

语法:

SELECT * FROM 表名 LIMIT 起始值-1, 取多少条记录 ;

举例:

SELECT * FROM 表名 LIMIT 20, 10 ;

说明:从第21条记录开始去10条记录,即取得是21,22,23,24,25,26,27,28,29,30这10条记录。

四、字符串截取:

(1)oracle中的字符串截取:

语法:

select substr(“目标字符串”,开始坐标,结束坐标) from dual;

这里写图片描述

这里写图片描述

这里写图片描述

注意:

oracle中的下标可以从0开始,也可以从1开始,而且两个效果是一样的,但是如果从-1开始则是取最后一个,截取长度这个参数将会失效

这里写图片描述

这里写图片描述

注意:

oracle中是没有substring这个函数的

(2)mysql中的字符串截取:

语法一:

select substr(“目标字符串”,开始坐标,截取长度) from dual;

这里写图片描述

这里写图片描述

这里写图片描述

注意:

1、myql中的下标不能0开始
2、mysql下标也可以从-1开始,情况和orace一样

语法二:

select substring(“目标字符串”,开始坐标,截取长度) from dual;

这里写图片描述

这里写图片描述

注意:

myql中的substr和substring函数是一样的效果

语法三:

select mid(“目标字符串”,开始坐标,截取长度) from dual;

这里写图片描述

注意:

myql中的substr、mid和substring这三个函数是一样的效果

语法四:

select left(“目标字符串”,从左侧第一个开始的截取长度) from dual;

这里写图片描述

语法五:

select right(“目标字符串”,从右侧最后一个开始的截取长度) from dual;

这里写图片描述