oracle,mysql常用函数的区别

racle mysql 的常用函数的区别

group by,wmsys.wm_concat,group_concat:

oracle :
select yhid,yh,wmsys.wm_concat(mc) mc from dm group by yhid,yh
mysql :
select yhid,yhd,group_concat(mc) mc from dm group by yhd

group by:在mysql中:如果只根据一个列进行分组,则不管查询出多少列(除聚合函数外),group by后面跟一个列就OK了,但ORALCE中查询出多少
列,则GROUP BY 后面就要跟多少列,并且GROUP BY后面不允许跟别名,这导致了一个问题:
如果查询的列需要判断时,比如遇到大块的CASE WHEN 时,则GROUP BY后面也需要重复写一遍,导致SQL语句非常庞大。
eg:
sql = "
select sj.guid,sj.zid,sj.mc,sj.gdsj,wmsys.wm_concat(org.mc) bm,sj.kssj||'~'||sj.jssj ksjs,case when mod(sj.sxbbz,2)=0 then '上班' else '下班' end sxb
from t_kq_sjsz sj left join t_kq_sjsz_bm sj_bm on sj.zid=sj_bm.zid left join t_org_tree org on sj_bm.bmid=org.lxid
group by sj.guid,sj.zid,sj.mc,sj.gdsj,sj.kssj||'~'||sj.jssj,case when mod(sj.sxbbz,2)=0 then '上班' else '下班' end
";
列转化为行时:mysql为group_concat,对应的oracle 为:wmsys.wm_concat

CONCAT,“~”(字符串连接):
mysql :CONCAT
oralce:"~"


oracle 的日期处理:
oralce的日期格式为 dd-m月-yy hh24:mi:ss
mysql 中的为: yyyy-MM-dd HH:mm:ss
在ORALCE中:尽管用"SimpleDateFormat"类可以格式化为指定格式,但我试验了通过JdbcTemplate.update(sql),却不能插入成功不知道为什么!.不知道JDBC可以不?
mysql 中不存在此问题.
我的处理方法:
定义一个static 变量:
private static String strOralceTime = "to_date({0},'yyyy-mm-dd hh24:mi:ss')"
遇见时间变量,则String.replace({0},date);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值