MySQL转ORALCE函数指南
删除from子查询后的as关键字 //oracle表名不要用as,可能是为了防止和Oracle数据库中的存储过程中的关键字as冲突的问题
MySQL | Oracle | |
---|---|---|
日期格式化 | date_format(year,'%Y-%c-%d %H:%i:%S') | to_date(year,'yyyy-mm-dd hh24:mi:ss') |
获取当前时间 | now() | sysdate |
从日期减去指定的时间间隔 | date_sub(date,INTERVAL 10 year) | add_months(createDate, -120) //减去10年 |
格式化,取整,加逗号默认.00 | Format (total_fund , 0 ) | to_char(total_fund,'FM999,999,999,999,990') |
保留两位小数 | FORMAT(100.3111,2); | to_char(total_fund,'FM999,999,999,999,990.00') |
判断 | IF ( t.stage = 'ph05', t.project_number, 0 ) | IF t.stage = 'ph05' THEN t.project_number ELSE 0 END IF |
自定义排序 | DECODE(value,if1,then1,if2,then2,if3,then3,...,else) | |
case when then | case when a='1' then 'xxxx' when a='2' then 'ssss' else 'zzzzz' end | |
月份差 | months_between(sysdate,to_date('2020-02-02','yyyy-mm-dd')) | |
字符串转日期 | STR_TO_DATE(str,'%Y-%m-%d %H:%i:%s') | to_date(year,'yyyy-mm-dd hh24:mi:ss') |
将查询结果根据逗号拼接到一行 | group_concat(DISTINCT a.year order by a.year SEPARATOR ',') | listagg(to_char(b.year), ',') within group( order by b.year) |
将查询结果根据逗号拼接到一行 | RTRIM(xmlagg(xmlparse(content CALL_ID||',' wellformed)).getclobval() ,',') | |
组合字段 | select ( '(编码:'||A.CODE || ',名称:'|| A.NAME ||',类型:'|| B.TEXT || ')') CATE_TYPE_NAME |