首页 > 数据库 >Oracle 到 MySQL 函数替换方案汇总

Oracle 到 MySQL 函数替换方案汇总

时间:2024-07-22 17:31:19浏览次数:12  
标签:STATUS 汇总 orderchildId 语法 MySQL Oracle CARD

常用函数和语法转换

   

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

 

标签:STATUS,汇总,orderchildId,语法,MySQL,Oracle,CARD
From: https://www.cnblogs.com/qimoxuan/p/18316503

相关文章

  • 德乐克智能锁400客服电话/全国维修总部电话-《今日汇总》
    400服务电话:400-117-1060(点击咨询)德乐克智能锁400客服电话/全国维修总部电话-《今日汇总》德乐克智能锁全国各售后服务热线号码2024已更新(2024已更新)        德乐克智能锁售后服务维修电话:(1)400-117-1060(点击咨询)(2)400-117-1060(点击咨询)       ......
  • 云硕智能锁全国售后服务电话号码-《今日汇总》
    400服务电话:400-117-1060(点击咨询)云硕智能锁全国售后服务电话号码-《今日汇总》云硕智能锁全国各售后服务热线号码2024已更新(2024已更新)        云硕智能锁售后服务维修电话:(1)400-117-1060(点击咨询)(2)400-117-1060(点击咨询)        云硕智能锁......
  • series智能锁空调全国售后服务电话号码-《今日汇总》
    400服务电话:400-117-1060(点击咨询)series智能锁空调全国售后服务电话号码-《今日汇总》series智能锁全国各售后服务热线号码2024已更新(2024已更新)        series智能锁售后服务维修电话:(1)400-117-1060(点击咨询)(2)400-117-1060(点击咨询)        ......
  • 格雷丁智能锁400客服电话/全国维修总部电话-《今日汇总》
    400服务电话:400-117-1060(点击咨询)格雷丁智能锁400客服电话/全国维修总部电话-《今日汇总》格雷丁智能锁全国各售后服务热线号码2024已更新(2024已更新)        格雷丁智能锁售后服务维修电话:(1)400-117-1060(点击咨询)(2)400-117-1060(点击咨询)       ......
  • 呼和浩特英顺智能锁24小时服务电话-《今日汇总》
    400服务电话:400-117-1060(点击咨询)呼和浩特英顺智能锁24小时服务电话-《今日汇总》英顺智能锁全国各售后服务热线号码2024已更新(2024已更新)        英顺智能锁售后服务维修电话:(1)400-117-1060(点击咨询)(2)400-117-1060(点击咨询)        英顺智能......
  • Mysql的主从同步时延问题
    主从同步延迟可以通过一些策略减少,从而减低对业务的影响避免大事务和长事务大事务和长事务会严重影响主从同步的效率,例如大规模的DELETE操作会生成大量的binlog,导致从库复制速度跟不上。解决:通过分批操作缓解,例如一次1000条,减少每次操作的时间,减少对主从同步的影响。启用从库......
  • CentOS 7 安装MySQL
    一、前言这篇博客使用CentOS7系统进行操作,安装过程参考本人另一篇博客CentOS7的下载与安装所有操作都在root用户下进行二、下载MySQL的下载地址:https://downloads.mysql.com/archives/community/版本选择随意,这里以MySQL:8.0.28为例系统选择RedHatEnter......
  • Day07 MySQL 面试题 (三)
    MySQL面试题22、MySQL里记录货币用什么字段类型好NUMERIC和DECIMAL类型被MySQL实现为同样的类型,这在SQL92标准允许。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定。例......
  • Linux下MySQL的安装部署
    文章目录前言一、MySQL是什么?二、MySQL安装部署(两种)1.手动安装MySQL(1)下载MySQL安装包(2)解压压缩包至opt文件夹下(3)重命名mysql-8.0.33-linux-glibc2.12-x86_64文件夹(4)创建用户组和密码(5)为mysql用户授权(6)创建数据文件的存储位置(7)初始化MySQL数据库(8)编辑MySQL的配置文件(9)......
  • MySQL支持中文排序的实现方法
    在处理包含中文字符的数据库时,正确地实现中文排序是确保数据准确性和用户体验的关键。MySQL提供了多种方法来实现中文排序,这些方法主要涉及字符集(Charset)和排序规则(Collation)的设置。以下是三种常用的方法来支持中文排序:方法一:使用GBK编码GBK是一种常用于简体中文的字符编码......