常用函数和语法转换

 
 

NVL函数

  • Oracle语法: NVL(COUNT(*), 0)
  • MySQL语法: IFNULL(COUNT(*), 0)
 

转字符串

  • Oracle语法: to_char(字段)
  • MySQL语法: CONVERT(字段, CHAR)
 

Rownum递增

  • Oracle语法: SELECT rownum num FROM SYS_ENUM
  • MySQL语法: SELECT (@i:=@i+1) num FROM sys_enum, (SELECT @i:=0) AS it
 

Delete增加表别名

  • Oracle语法: DELETE from sys_menus s WHERE s.MENU_ID in (86,87,88);
  • MySQL语法: DELETE s from sys_menus s WHERE s.MENU_ID in (86,87,88);
 

日期和字符转换

  • Oracle语法: to_char(), to_date();
  • MySQL语法: DATE_FORMAT(date, '%Y-%m-%d'), STR_TO_DATE(date, '%Y-%m-%d %H:%i:%s')
 

UUID

  • Oracle语法: sys_guid()
  • MySQL语法: REPLACE(UUID(), _utf8'-', _utf8'')
 

特殊字符转换

  • Oracle语法: to_char(SALARY_NUM, 'fm99999999999990.00')
  • MySQL语法: CONVERT(FORMAT(SALARY_NUM, 2), CHAR)
 

按拼音首字母排序

  • Oracle语法: nlssort(enterprise_name, 'NLS_SORT=SCHINESE_PINYIN_M')
  • MySQL语法: convert(name using gbk) ASC
 

Trunc函数截取月初

  • Oracle语法: trunc(sysdate, 'yyyy-MM-dd'), 'mm')
  • MySQL语法: DATE_ADD(sysdate(), INTERVAL -DAY(sysdate()) +1 DAY)
 

Trunc函数

  • Oracle语法: trunc(sysdate)
  • MySQL语法: SELECT STR_TO_DATE(DATE_FORMAT(SYSDATE(), '%Y%m%d'), '%Y%m%d%H')
 

Rownum日期操作

  • Oracle语法: sysdate-1
  • MySQL语法: set @dt =SYSDATE(); select date_add(@dt, interval 1 day) from dual;
 

Decode

  • Oracle语法: DECODE(t.CARD_STATUS, 1, '01', 6, '06', 2, '02', 4, '04', null) as CWR_CARD_STATUS
  • MySQL语法: (CASE WHEN t.CARD_STATUS = 1 THEN '01' WHEN t.CARD_STATUS = 6 THEN '06' WHEN t.CARD_STATUS = 2 THEN '02' WHEN t.CARD_STATUS = 4 THEN '04' ELSE null END) as CWR_CARD_STATUS
 

Nulls Last

  • Oracle语法: nulls last
  • MySQL语法: order by IF(ISNULL(my_field), 1, 0), my_field;
 

Nulls First

  • Oracle语法: nulls first
  • MySQL语法: order by IF(ISNULL(my_field), 0, 1), my_field;
 

To_char(数字格式化)

  • Oracle语法: to_char(数据, 'FM9999990.00')
  • MySQL语法: format(数据, 2)
 

Merge Into

  • Oracle语法: merge into
  • MySQL语法: `-- 修改成UPDATE 和 INSERT
 

文本拼接

  • Oracle语法: ||
  • MySQL语法: CONCAT('1','2''3')
 

substr

  • 注意: MySQL中不能将0作为起始点,需要改成1。
 

时间的计算

  • Oracle语法: 可以直接相减(默认单位:天)
  • MySQL语法:使用 TIMESTAMPDIFF(需指定默认单位)

row number over

  • Oracle语法:
SELECT a.*,
ROW_NUMBER() OVER(partition by a.orderchildId order by a.CheckEndTime desc) as rum_num
FROM biz_qa_check_first a
  • MySQL语法:
select @rownum:=@rownum+1 rownum,a.*,
if(@orderchildId=a.orderchildId,@rank:=@rank+1,@rank:=1) as rum_num,
@orderchildId:=a.orderchildId
from(SELECT * from biz_qa_check_first order by orderchildId,CheckEndTimedesc)a,
(select @rownum:=0,@orderchildId:=null,@rank:=0)b

Oracle 到 MySQL 函数替换方案汇总的更多相关文章

  1. ORACLE和MYSQL函数

    函数 编号 类别 ORACLE MYSQL 注释 1 数字函数 round(1.23456,4) round(1.23456,4) 一样: ORACLE:select round(1.23456,4) ...

  2. ORACLE,mysql中替换like的函数

    数据库中存储了海量的数据,当查询时使用like,速度明显变慢.我在做项目时,发现使用内部函数INSTR,代替传统的LIKE方式查询,并且速度更快. INSTR()函数返回字符串中子字符串第一次出现的位 ...

  3. oracle 和 mysql 常用语句对比汇总

    文章目录 一.数据库管理 1.1 用户管理 1.1.1 mysql用户.权限管理 1.1.2 oracle 用户.角色.权限管理 二.DQL 语句 2.1 基础查询 1.常量查询的区别: 2.字符串拼 ...

  4. ORACLE 利用 REPLACE函数替换字段字符串

    REPLACE(string,s1,s2) string 希望被替换的字符或变量 s1 被替换的字符串 s2 要替换的字符串 SQL> select replace(he love you,he ...

  5. mysql函数替换域名

    UPDATE `pigcms_product` SET info = REPLACE ( info, 'oto.mph88.com', 'www.10000fk.net' ) ;

  6. oracle和mysql功能相同的函数

    wm_concat ---->mysql 的group_concat decode (两条件的)----->mysql 的 if decode (3个及以上条件的)---------> ...

  7. MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  8. Mysql,Oracle使用rollup函数完成行列统计

    时间 2014-02-25 00:05:38  ITeye-博客 原文  http://53873039oycg.iteye.com/blog/2021445 主题 MySQLOracle数据库 昨天 ...

  9. MySQL1:MySQL函数汇总

    前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...

  10. MySQL函数汇总

    前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...

随机推荐

  1. django redirect_authenticated_user

    redirect_authenticated_user是在Web开发框架(如Django)中常见的设置,用于控制身份验证重定向的行为. 当启用redirect_authenticated_user时, ...

  2. [oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

    光标位置 回忆上次内容 上次讲了 三引号的输出 三引号中 回车和引号 都会 被原样输出 \ 还是需要从 \\转义 黑暗森林 快被摸排清了 还有哪个 转义序列 没 研究过吗? \e是 干什么的? 回忆转 ...

  3. .NET科普:.NET简史、.NET Standard以及C#和.NET Framework之间的关系

    最近在不少自媒体上看到有关.NET与C#的资讯与评价,感觉大家对.NET与C#还是不太了解,尤其是对2016年6月发布的跨平台.NET Core 1.0,更是知之甚少.在考虑一番之后,还是决定写点东西 ...

  4. Python elasticsearch-py类库基础用法

    实践环境 https://pypi.org/project/elasticsearch/ pip install elasticsearch==7.6.0 离线安装包及依赖包下载地址: https:/ ...

  5. Jmeter让线程循环变量值不重复

    我们定义用户参数时为了保证某个参数值不重复会设置为随机变量 1.使用[用户定义的变量]组件,传入随机值如"HELLO${__Random(100,200,)}_${__counter(FAL ...

  6. Fiddler使用界面介绍-右侧面板

    右侧面板是对左侧请求进行解析的面板,点击左侧的请求右侧面板就会出现分析数据 1.Statistics关于HTTP请求的性能 2.Inspectors请求内容,包含请求数据和响应数据 3. AutoRe ...

  7. 【MySQL】MGR高可用搭建

    MySQL8.0.27如何安装 https://www.cnblogs.com/mindzone/p/15450312.html 部署过程中各种问题可参考的解决方案 我遇见的搭建问题,解决方案参考下面 ...

  8. 【转载】 tensorflow batch_normalization的正确使用姿势

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/computerme/article/de ...

  9. 《Python数据可视化之matplotlib实践》 源码 第四篇 扩展 第十三章

    图  13.10 import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np mpl.rcParams[&q ...

  10. 《Python数据可视化之matplotlib实践》 源码 第三篇 演练 第九章

    图  9.1 import matplotlib.pyplot as plt import numpy as np fig=plt.figure() ax=fig.add_subplot(111) f ...