随笔 - 28  文章 - 0  评论 - 1  阅读 - 8624

Oracle/Mysql/SqlServer 常用函数区别

1.类型转换  

  

--Oracle  

select to_number('123') from dual;  --123;   

select to_char(33) from dual;       --33;  

select to_date('2004-11-27','yyyy/mm/dd') from dual;--2004-11-27  

  

--Mysql  

select cast('123' as signed integer);   --123   

select cast(33 as char(2));     --33;  

select to_days('2000-01-01');       --730485  

  

--SqlServer   

select cast('123' as decimal(30,2));    --123.00  

select cast(33 as char(2));     --33;  

select convert(varchar(12) , getdate(), 120)  

  

2.四舍五入函数区别   

  

--Oracle  

select round(12.86*10)/10 from dual;    --12.9  

  

--Mysql  

select format(12.89,1);         --12.9   

  

--SqlServer  

select round(12.89,1);          --12.9   

  

3.日期时间函数  

  

--Oracle  

select sysdate from dual;       --日期时间   

  

--Mysql  

select sysdate();           --日期时间   

select current_date();          --日期  

  

--SqlServer  

select getdate();           --日期时间  

select datediff(day,'2010-01-01',cast(getdate() as varchar(10)));--日期相差天数  

  

4.Decode函数   

  

--Oracle   

select decode(sign(12),1,1,0,0,-1) from dual;--1   

  

--Mysql/SqlServer   

select case when sign(12)=1 then 1 when sign(12)=0 then 0 else -1 end;--1   

  

5.判空函数   

  

--Oracle  

select nvl(1,0) from dual;      --1   

  

--Mysql  

select ifnull(1,0);         --1   

  

--SqlServer  

select isnull(1,0);         --1   

  

6.字符串连接函数  

  

--Oracle  

select '1'||'2' from dual;      --12  

select concat('1','2');         --12  

  

--Mysql  

select concat('1','2');         --12  

  

--SqlServer  

select '1'+'2';             --12  

  

7.记录限制函数  

  

--Oracle  

select 1 from dual where rownum <= 10;  

  

--Mysql  

select 1 from dual limit 10;  

  

--SqlServer  

select top 10 1  

  

8.字符串截取函数  

  

 --Oracle  

 

substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串

 

substr('Hello World',1,1) //返回结果为 'H'  *0和1都是表示截取的开始位置为第一个字符

 

substr('Hello World',2,4) //返回结果为 'ello'

 

substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符

  

  

--Mysql/SqlServer  

select substring('12345',1,3);  //索引从1到3 

  

8.把多行转换成一合并列  

  

--Oracle  

select wm_concat(列名) from dual; --多行记录转换成一列之间用,分割  

  

--Mysql/SqlServer  

select group_concat(列名);  

  

9.利用查询结果创建表  

  

--Oracle  

CREATE TABLE dept_bak AS SELECT * FROM dept;  

 

--Mysql/SqlServer  

SELECT * INOT t1 FROM titles  

posted on   宇宇小子  阅读(37)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示