Oracle 到 MySQL 函数替换方案汇总
常用函数和语法转换
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 函数替换方案汇总的更多相关文章
- ORACLE和MYSQL函数
函数 编号 类别 ORACLE MYSQL 注释 1 数字函数 round(1.23456,4) round(1.23456,4) 一样: ORACLE:select round(1.23456,4) ...
- ORACLE,mysql中替换like的函数
数据库中存储了海量的数据,当查询时使用like,速度明显变慢.我在做项目时,发现使用内部函数INSTR,代替传统的LIKE方式查询,并且速度更快. INSTR()函数返回字符串中子字符串第一次出现的位 ...
- oracle 和 mysql 常用语句对比汇总
文章目录 一.数据库管理 1.1 用户管理 1.1.1 mysql用户.权限管理 1.1.2 oracle 用户.角色.权限管理 二.DQL 语句 2.1 基础查询 1.常量查询的区别: 2.字符串拼 ...
- ORACLE 利用 REPLACE函数替换字段字符串
REPLACE(string,s1,s2) string 希望被替换的字符或变量 s1 被替换的字符串 s2 要替换的字符串 SQL> select replace(he love you,he ...
- mysql函数替换域名
UPDATE `pigcms_product` SET info = REPLACE ( info, 'oto.mph88.com', 'www.10000fk.net' ) ;
- oracle和mysql功能相同的函数
wm_concat ---->mysql 的group_concat decode (两条件的)----->mysql 的 if decode (3个及以上条件的)---------> ...
- MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法
在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...
- Mysql,Oracle使用rollup函数完成行列统计
时间 2014-02-25 00:05:38 ITeye-博客 原文 http://53873039oycg.iteye.com/blog/2021445 主题 MySQLOracle数据库 昨天 ...
- MySQL1:MySQL函数汇总
前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...
- MySQL函数汇总
前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...
随机推荐
- 使用vxe-table组件,控制台报错:缺少必要的“{0}”参数,这可能会导致出现错误
这是由于使用vxe表格,给列属性设置 type="html" 只需要开启存,需要启用column-config.useKey与row-config.useKey就可以了
- AT_arc149_a 题解
洛谷链接&Atcoder 链接 本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读. 题目简述 求满足以下条件的小于 \(10 ^ n\) 数最大是多少? 每一位数字均相同: 是 \ ...
- TIER 2: Archetype
TIER 2: Archetype 扫描 nmap 使用 nmap 进行扫描目标 IP,发现目标是 Windows 服务器,开放 SMB 和 SQL Server 服务. SMB SMB 之前已经接触 ...
- vue高频面试题
来源:B站程序员来了 第一部分:vue基础 1,v-if和v-for的优先级谁更高?同时出现该如何优化性能? 在同级出现的时候,render函数会将v-for和v-if同时渲染在一个名为_l的函数,在 ...
- elasticdump数据迁移与内外网安装
elasticdump数据迁移与内外网安装 一.安装node 首先获取安装包 wget https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64 ...
- 假期小结4hive学习beeline
学习Beeline是连接和管理Hive的一种有效方式.Beeline是一个用于与Hive交互的命令行工具,它支持通过JDBC连接到Hive服务器,并执行查询和管理Hive表等操作. 以下是一些关于Be ...
- 一键导入抓包数据生成HTTP请求
Jmeter一键导入抓包数据生成HTTP请求.路径:工具->Import from cURL 在弹框里粘贴cURL,点击"Create Test Plan"会自动生成HTTP ...
- Python和RPA网页自动化-处理iframe嵌入式框架
以网易云为例,歌曲列表都在<iframe>框架下,使用Python和RPA网页自动化依次点击10首歌的播放键 1.python代码 从网页源代码可见,整个歌曲列表都在<iframe& ...
- Gartner web3 的未来市场前景
内行人叫web3 外行人叫元宇宙 元宇宙(Metaverse) Gartner将元宇宙定义为一个由通过虚拟技术增强的物理和数字现实融合而成的集体虚拟共享空间.这个空间具有持久性,能够提供增强沉浸式体验 ...
- 全球最大开源模型Grok-1 —— 马斯克的大模型
Grok官网: https://grok.x.ai/