Oracle和MySQL语句上的一些区别

对于空字串的判断,其中MySQL只能对null过滤

oracle: 使用nvl(exp1,exp2) 函数
	select nvl('',1) from dual;  -- returns:1
	select nvl(null,1) from dual;  -- returns: 1
mysql:使用ifnull(exp1,exp2)函数
	SELECT ifnull(null,1);	 -- returns: 1
	SELECT ifnull('',1); 	 -- returns: ''
	

对于日期时间操作

操作oraclemysql
转字符TO_CHAR(exp,‘yyyy-MM-dd’)date_format(exp,’%Y-%m-%d’)
转字符TO_CHAR(exp,‘yyyy-MM-dd HH:mm:ss’)date_format(exp,’%Y-%m-%d %T’)
转时间TO_DATE(exp,‘yyyy-MM-dd’)str_to_date(exp,’%Y-%m-%d’)
转时间TO_DATE(exp,‘yyyy-MM-dd HH24:mi:ss’)str_to_date(exp,’%Y-%m-%d %T’)
取月份TO_CHAR(exp,‘MM’)MONTH(exp)
取时间sysdatenow()
日期相减date1 - date2datediff(date1,date2)

字符链接

oracle: 可使用 || 符号,可用concat(exp1,exp2)函数
	select '1'||'2' from dual; 		-- returns '12'
	select concat('1','2') from dual;	-- returns '12'
	select concat('1','2','3') from dual; -- returns error 参数个数无效
			
mysql: 只能用concat(exp1,exp2,...), || 符号在MySQL表示 或 ,MySQL的concat函数可有N个参数,Oracle只有两个参数
	select concat('1','2') from dual; -- returns '12'
	select concat('1','2','3') from dual; -- returns '123'

表连接(左右连接)

oracle:
	oracle自带有表连接的(+)功能,也可用left(right) join on
mysql:
	mysql 没有(+)使用功能,只能用left(right) join on,否则就会报错

换行回车符

Oracle : 换行符是chr(10),回车符是chr(13)
MySQL :  换行符是char(10),回车符是char(13) 

注意

oracle : ORDER BY 默认排序时,空值在下;MySQL空值在上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值