MySQL函数和oracle_MySQL与Oracle差异函数对比

ORACLE:select round(1.23456,4) value from dual

MYSQL:select round(1.23456,4) value

2

abs(-1)

abs(-1)

功能: 将当前数据取绝对值

用法: oracle和mysql用法一样

mysql: select abs(-1) value

oracle: select abs(-1) value from dual

3

ceil(-1.001))

ceiling(-1.001)

功能: 返回不小于 X 的最小整数

用法:

mysqls: select ceiling(-1.001) value

oracle: select ceil(-1.001) value from dual

4

floor(-1.001)

floor(-1.001)

功能: 返回不大于 X 的最大整数值

用法:

mysql: select floor(-1.001) value

oracle: select floor(-1.001) value from dual

5

Max(expr)/Min(expr)

Max(expr)/Min(expr)

功能:返回 expr 的最小或最大值。MIN() 和MAX() 可以接受一个字符串参数;在这

种情况下,它们将返回最小或最大的字符串传下。

用法:

ROACLE: select max(user_int_key) from sd_usr;

MYSQL: select max(user_int_key) from sd_usr;

6

字符串函数

ascii(str)

ascii(str)

功能:返回字符串 str 最左边的那个字符的 ASCII码值。如果 str 是一个空字符串,

那么返回值为 0。如果 str 是一个 NULL,返回值也是 NULL.

用法:

mysql:select ascii('a') value

oracle:select ascii('a') value from dual

7

CHAR(N,...)

CHAR(N,...)

功能:CHAR() 以整数类型解释参数,返回这个整数所代表的 ASCII 码值给出的字符

组成的字符串。NULL 值将被忽略.

用法:

mysql:select char(97) value

oracle:select chr(97) value from dual

8

REPLACE(str,from_str,to_str)

REPLACE(str,from_str,to_str)

功能: 在字符串 str 中所有出现的字符串from_str 均被 to_str 替换,然后返回这个字符串.

用法:

mysql: SELECT REPLACE('abcdef', 'bcd', 'ijklmn') value

oracle: SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual

9

INSTR('sdsq','s',2)

INSTR('sdsq','s')

参数个数不同

ORACLE: select INSTR('sdsq','s',2) value from dual(要求从位置2开始)

MYSQL: select INSTR('sdsq','s') value(从默认的位置1开始)

10

SUBSTR('abcd',2,2)

substring('abcd',2,2)

函数名称不同:

ORACLE: select substr('abcd',2,2) value from dual

MYSQL: select substring('abcd',2,2) value

11

instr(‘abcdefg’,’ab’)

locate(‘ab’,’abcdefg’)

函数名称不同:

instr -> locate(注意:locate的子串和总串的位置要互换)

ORACLE: SELECT instr('abcdefg', 'ab') VALUE FROM DUAL

MYSQL: SELECT locate('ab', 'abcdefg') VALUE

12

length(str)

char_length()

函数名称不同:

ORACEL: SELECT length('AAAASDF') VALUE FROM DUAL

MYSQL: SELECT char_length('AAAASDF') VALUE

13

REPLACE('abcdef', 'bcd', 'ijklmn')

REPLACE('abcdef', 'bcd', 'ijklmn')

一样:

ORACLE: SELECT REPLACE('abcdef', 'bcd', 'ijklmn') value from dual

MYSQL: SELECT REPLACE('abcdef', 'bcd', 'ijklmn') value

14

LPAD('abcd',14, '0')

LPAD('abcd',14, '0')

一样:

ORACLE: select LPAD('abcd',14, '0') value from dual

MYSQL: select LPAD('abcd',14, '0') value from dual

15

UPPER(iv_user_id)

UPPER(iv_user_id)

一样:

ORACLE: select UPPER(user_id) from sd_usr;

MYSQL: select UPPER(user_id) from sd_usr;

16

LOWER(iv_user_id)

LOWER(iv_user_id)

一样:

ORACLE: select LOWER(user_id) from sd_usr;

MYSQL: select LOWER(user_id) from sd_usr;

17

控制流函数

nvl(u.email_address, 10)

IFNULL(u.email_address, 10)

ISNULL(u.email_address)

函数名称不同(根据不同的作用进行选择):

ORACLE: select u.email_address, nvl(u.email_address, 10) value from sd_usr u (如果u.email_address=NULl,就在DB中用10替换其值)

MYSQL: select u.email_address,IFNULL(u.email_address, 10) value from sd_usr u(如果u.email_address=NULl,显示结果中是10,而不是在DB中用10替换其值)

select u.email_address,ISNULL(u.email_address) value from sd_usr u(如果u.email_address是NULL,就显示1,否则就显示0)

18

DECODE(iv_sr_status,g_sr_status_com, ld_sys_date, NULL)

无,请用IF或CASE语句代替.

IF语句格式:(expr1,expr2,expr3)

说明:

1. decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

该函数的含义如下:

IF 条件=值1

THEN

RETURN(翻译值1)

ELSIF 条件=值2 THEN

RETURN(翻译值2)

......

ELSIF 条件=值n THEN

RETURN(翻译值n)

ELSE

RETURN(缺省值)

END IF

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值