oracle和mysql函数的区别_数据库系列:oracle函数与mysql函数的区别

1.连接符 ||与concat

2.to_char与cast(a as char(2))

3.日期加减

date_add(@dt,interval 1 day);

4.nvl与ifnull

5.sydate与sysdate()

6.trunc与cast

7.rownum与@rownum:=@rownum+(as n)

8.oracle中调用函数

var A varchar2(40);

call procedure1(‘2017-12-11’) into A;

9.oracle函数中传入日期参数时

select get_classtime(to_date(‘1989-1-1′,’yyyy-mm-dd’),to_date(‘1989-1-21’)) from dual;

10.mysql中rownum的实现

SELECT @rownum:=@rownum+1 as rownum, class.*

FROM (SELECT @rownum:=0) r, class;

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) 说明:

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值