首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

Oracle/Mysql/SqlServer函数差别

2012-07-02 
Oracle/Mysql/SqlServer函数区别1.类型转换--Oracleselect to_number(123) from dual--123select to_c

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  select substr('12345',1,3) from dual;     --Mysql/SqlServer  select substring('12345',1,3);     8.把多行转换成一合并列     --Oracle  select wm_concat(列名) from dual; --多行记录转换成一列之间用,分割    --Mysql/SqlServer  select group_concat(列名);  9、中文排序--Oracle  select * from dual order by  NLSSORT('CD.F_NAME_CH',NLS_SORT=SCHINESE_PINYIN_M) desc; --中文拼音排序   1)按笔画排序 select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_STROKE_M') 2)按部首排序 select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_RADICAL_M') 3)按拼音排序 select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_PINYIN_M');  --Mysql    select * from dual NLSSORT order by CONVERT(‘F_NAME_CH' USING GBK) desc ;  如果数据表tbl的某字段name的字符编码是latin1_swedish_ci;select * from `tbl` order by birary(name) asc 如果数据表tbl的某字段name的字符编码是utf8_general_ci;SELECT name FROM `tbl` WHERE 1ORDER BY CONVERT( name USING gbk ) COLLATE gbk_chinese_ci ASC--SqlServer 1)中文的笔画顺序排序Select * From [Table_Name] Order By [Column_Name] Collate Chinese_PRC_Stroke_ci_as 2)按拼音排序Select * From [Table_Name] ORDER BY [Column_Name] COLLATE Chinese_PRC_CS_AS_KS_WS

热点排行