遇到关于MySQL和Oracle数据库的一些问题(慢慢更新)

项目升级,版本从2.0更新到3.0数据库由以前的oracle换成了现在的MySQL,函数需要转换,然后网上查资料,做了简单的整理:

select c.acc_nbr,c.comp_inst_id from prod_offer_inst a,offer_prod_inst_rel b,access_prod_inst c 
where a.prod_offer_inst_id=b.prod_offer_inst_id and b.instance_id=c.prod_inst_id and  rownum<2

遇到关于MySQL和Oracle数据库的一些问题(慢慢更新)_第1张图片

 

直接搬用项目中的代码,这个是查询结果

限定返回结果集rownum 和limit

rownum

在oracle中,执行SQL语句会自动生成一个序号(Oracle序列从1开始),然后使用rownum可以限制返回的结果集,比如你取前10条数据,rownum<11,只能用<、<=、!=不能用大于,用大于会不成立常用来分页,详情可查阅链接https://blogs.oracle.com/oraclemagazine/on-rownum-and-limiting-results

limit

语法 limit n,m 表示取返回n+1条到第n+m条的结果集(MySQL序列从0开始),当只有一个参数时,如 limit 10,则表示返回前10条记录,limit n,-1表示返回从第n+1条到最后一条记录(慢慢更新,先更新这两个)

截取字符串substr和substring

substr

在Oracle中用substr截取字符串,substr(str,n,m),从第n个位置开始截取,截取m个,比如 substr(hello,1,3) 结果为hel,当n为负数时表示从后往前截取;substr(str,n)表示从第n开始截取所有字符串,当n为负数时表示从后面开始截取n个字符

substring

在MySQL中用substring截取字符串,substring用法和Oracle中的substring一样,另外MySQL中还多了 left(str,n) 从左边第n开始截取和right(str,n) 从右边第n开始截取

日期和字符串的转换

发现一篇博文概括的挺全的转过来:https://blog.csdn.net/wendi_0506/article/details/42003185

MySQL中,使用having时要取别名,不然会报错,

 

遇到关于MySQL和Oracle数据库的一些问题(慢慢更新)_第2张图片

遇到关于MySQL和Oracle数据库的一些问题(慢慢更新)_第3张图片

取别名后就可以成功执行,比嵌套简单多了

嵌套也要取别名

遇到关于MySQL和Oracle数据库的一些问题(慢慢更新)_第4张图片

你可能感兴趣的:(遇到关于MySQL和Oracle数据库的一些问题(慢慢更新))