SQL(Oracle)日常使用与不常使用函数的汇总
生活随笔
收集整理的這篇文章主要介紹了
SQL(Oracle)日常使用与不常使用函数的汇总
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
--日常使用的sql語句和oracle語句,有些相對使用的頻率比較高,收藏起來還是比較值得的
-- 絕對值 SQL:select abs(-1) valueOracle:select abs(-1) value from dual-- 2.取整(大) SQL:select ceiling(-1.001) value Oracle:select ceil(-1.001) value from dual-- 3.取整(小) SQL:select floor(-1.001) value Oracle:select floor(-1.001) value from dual-- 4.取整(截取)SQL:select cast(-1.002 as int) value Oracle:select trunc(-1.002) value from dual -- 5.四舍五入SQL:select round(1.23456,4) value 1.23460Oracle:select round(1.23456,4) value from dual 1.2346-- 6.e為底的冪 SQL:select Exp(1) value 2.7182818284590451 Oracle:select Exp(1) value from dual 2.71828182-- 7.取e為底的對數(shù)SQL:select log(2.7182818284590451) value 1Oracle:select ln(2.7182818284590451) value from dual; 1 -- 8.取10為底對數(shù)SQL:select log10(10) value 1Oracle:select log(10,10) value from dual; 1-- 9.取平方SQL:select SQUARE(4) value 16Oracle:select power(4,2) value from dual 16-- 10.取平方根SQL:select SQRT(4) value 2Oracle:select SQRT(4) value from dual 2-- 11.求任意數(shù)為底的冪SQL:select power(3,4) value 81Oracle:select power(3,4) value from dual 81-- 12.取隨機數(shù)SQL:select rand() value Oracle:select sys.dbms_random.value(0,1) value from dual;-- 13.取符號SQL:select sign(-8) value -1Oracle:select sign(-8) value from dual -1----------數(shù)學(xué)函數(shù)-- 14.圓周率SQL:SELECT PI() value 3.1415926535897931Oracle:不知道-- 15.sin,cos,tan 參數(shù)都以弧度為單位例如:select sin(PI()/2) value 得到1(SQLServer)16.Asin,Acos,Atan,Atan2 返回弧度-- 17.弧度角度互換(SQLServer,Oracle不知道)DEGREES:弧度-〉角度RADIANS:角度-〉弧度---------數(shù)值間比較 -- 18. 求集合最大值SQL:select max(value) value from (select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aOracle:select greatest(1,-2,4,3) value from dual-- 19. 求集合最小值SQL:select min(value) value from (select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aOracle:select least(1,-2,4,3) value from dual-- 20.如何處理null值(F2中的null以10代替)SQL:select F1,IsNull(F2,10) value from TblOracle:select F1,nvl(F2,10) value from Tbl --------數(shù)值間比較-- 21.求字符序號SQL:select ascii('a') valueOracle:select ascii('a') value from dual-- 22.從序號求字符SQL:select char(97) valueOracle:select chr(97) value from dual-- 23.連接SQL:select '11'+'22'+'33' valueOracle:select CONCAT('11','22')||33 value from dual-- 23.子串位置 --返回3SQL:select CHARINDEX('s','sdsq',2) value Oracle:select INSTR('sdsq','s',2) value from dual-- 23.模糊子串的位置 --返回2,參數(shù)去掉中間%則返回7SQL:select patindex('%d%q%','sdsfasdqe') value Oracle:oracle沒發(fā)現(xiàn),但是instr可以通過第四霾問 刂瞥魷執(zhí)問?BR> select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6-- 24.求子串SQL:select substring('abcd',2,2) value Oracle:select substr('abcd',2,2) value from dual -- 25.子串代替 返回aijklmnefSQL:SELECT STUFF('abcdef', 2, 3, 'ijklmn') valueOracle:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual-- 26.子串全部替換 SQL:沒發(fā)現(xiàn)Oracle:select Translate('fasdbfasegas','fa','我' ) value from dual -- 27.長度SQL:len,datalengthOracle:length-- 28.大小寫轉(zhuǎn)換 lower,upper-- 29.單詞首字母大寫 SQL:沒發(fā)現(xiàn)Oracle:select INITCAP('abcd dsaf df') value from dual -- 30.左補空格(LPAD的第一個參數(shù)為空格則同space函數(shù))SQL:select space(10)+'abcd' valueOracle:select LPAD('abcd',14) value from dual -- 31.右補空格(RPAD的第一個參數(shù)為空格則同space函數(shù))SQL:select 'abcd'+space(10) valueOracle:select RPAD('abcd',14) value from dual-- 32.刪除空格SQL:ltrim,rtrimOracle:ltrim,rtrim,trim-- 33. 重復(fù)字符串SQL:select REPLICATE('abcd',2) value Oracle:沒發(fā)現(xiàn)-- 34.發(fā)音相似性比較(這兩個單詞返回值一樣,發(fā)音相同)SQL:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')Oracle:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual-- SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比較soundex的差-- 返回0-4,4為同音,1最高--------------日期函數(shù)-- 35.系統(tǒng)時間SQL:select getdate() valueOracle:select sysdate value from dual-- 36.前后幾日-- 直接與整數(shù)相加減 -- 37.求日期SQL:select convert(char(10),getdate(),20) valueOracle:select trunc(sysdate) value from dualselect to_char(sysdate,'yyyy-mm-dd') value from dual-- 38.求時間SQL:select convert(char(8),getdate(),108) valueOracle:select to_char(sysdate,'hh24:mm:ss') value from dual-- 39.取日期時間的其他部分SQL:DATEPART 和 DATENAME 函數(shù) (第一個參數(shù)決定) Oracle:to_char函數(shù) 第二個參數(shù)決定--參數(shù)---------------------------------下表需要補充year yy, yyyy quarter qq, q (季度)month mm, m (m O無效)dayofyear dy, y (O表星期)day dd, d (d O無效)week wk, ww (wk O無效)weekday dw (O不清楚)Hour hh,hh12,hh24 (hh12,hh24 S無效)minute mi, n (n O無效)second ss, s (s O無效)millisecond ms (O無效)------------------------------------------------ 40.當月最后一天 SQL:不知道Oracle:select LAST_DAY(sysdate) value from dual -- 41.本星期的某一天(比如星期日) SQL:不知道Oracle:SELECT Next_day(sysdate,7) vaule FROM DUAL; -- 42.字符串轉(zhuǎn)時間SQL:可以直接轉(zhuǎn)或者select cast('2004-09-08'as datetime) valueOracle:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;-- 43.求兩日期某一部分的差(比如秒)SQL:select datediff(ss,getdate(),getdate()+12.3) valueOracle:直接用兩個日期相減(比如d1-d2=12.3)SELECT (d1-d2)*24*60*60 vaule FROM DUAL;-- 44.根據(jù)差值求新的日期(比如分鐘)SQL:select dateadd(mi,8,getdate()) valueOracle:SELECT sysdate+8/60/24 vaule FROM DUAL;-- 45.求不同時區(qū)時間 SQL:不知道Oracle:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
-- 絕對值 SQL:select abs(-1) valueOracle:select abs(-1) value from dual-- 2.取整(大) SQL:select ceiling(-1.001) value Oracle:select ceil(-1.001) value from dual-- 3.取整(小) SQL:select floor(-1.001) value Oracle:select floor(-1.001) value from dual-- 4.取整(截取)SQL:select cast(-1.002 as int) value Oracle:select trunc(-1.002) value from dual -- 5.四舍五入SQL:select round(1.23456,4) value 1.23460Oracle:select round(1.23456,4) value from dual 1.2346-- 6.e為底的冪 SQL:select Exp(1) value 2.7182818284590451 Oracle:select Exp(1) value from dual 2.71828182-- 7.取e為底的對數(shù)SQL:select log(2.7182818284590451) value 1Oracle:select ln(2.7182818284590451) value from dual; 1 -- 8.取10為底對數(shù)SQL:select log10(10) value 1Oracle:select log(10,10) value from dual; 1-- 9.取平方SQL:select SQUARE(4) value 16Oracle:select power(4,2) value from dual 16-- 10.取平方根SQL:select SQRT(4) value 2Oracle:select SQRT(4) value from dual 2-- 11.求任意數(shù)為底的冪SQL:select power(3,4) value 81Oracle:select power(3,4) value from dual 81-- 12.取隨機數(shù)SQL:select rand() value Oracle:select sys.dbms_random.value(0,1) value from dual;-- 13.取符號SQL:select sign(-8) value -1Oracle:select sign(-8) value from dual -1----------數(shù)學(xué)函數(shù)-- 14.圓周率SQL:SELECT PI() value 3.1415926535897931Oracle:不知道-- 15.sin,cos,tan 參數(shù)都以弧度為單位例如:select sin(PI()/2) value 得到1(SQLServer)16.Asin,Acos,Atan,Atan2 返回弧度-- 17.弧度角度互換(SQLServer,Oracle不知道)DEGREES:弧度-〉角度RADIANS:角度-〉弧度---------數(shù)值間比較 -- 18. 求集合最大值SQL:select max(value) value from (select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aOracle:select greatest(1,-2,4,3) value from dual-- 19. 求集合最小值SQL:select min(value) value from (select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aOracle:select least(1,-2,4,3) value from dual-- 20.如何處理null值(F2中的null以10代替)SQL:select F1,IsNull(F2,10) value from TblOracle:select F1,nvl(F2,10) value from Tbl --------數(shù)值間比較-- 21.求字符序號SQL:select ascii('a') valueOracle:select ascii('a') value from dual-- 22.從序號求字符SQL:select char(97) valueOracle:select chr(97) value from dual-- 23.連接SQL:select '11'+'22'+'33' valueOracle:select CONCAT('11','22')||33 value from dual-- 23.子串位置 --返回3SQL:select CHARINDEX('s','sdsq',2) value Oracle:select INSTR('sdsq','s',2) value from dual-- 23.模糊子串的位置 --返回2,參數(shù)去掉中間%則返回7SQL:select patindex('%d%q%','sdsfasdqe') value Oracle:oracle沒發(fā)現(xiàn),但是instr可以通過第四霾問 刂瞥魷執(zhí)問?BR> select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6-- 24.求子串SQL:select substring('abcd',2,2) value Oracle:select substr('abcd',2,2) value from dual -- 25.子串代替 返回aijklmnefSQL:SELECT STUFF('abcdef', 2, 3, 'ijklmn') valueOracle:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual-- 26.子串全部替換 SQL:沒發(fā)現(xiàn)Oracle:select Translate('fasdbfasegas','fa','我' ) value from dual -- 27.長度SQL:len,datalengthOracle:length-- 28.大小寫轉(zhuǎn)換 lower,upper-- 29.單詞首字母大寫 SQL:沒發(fā)現(xiàn)Oracle:select INITCAP('abcd dsaf df') value from dual -- 30.左補空格(LPAD的第一個參數(shù)為空格則同space函數(shù))SQL:select space(10)+'abcd' valueOracle:select LPAD('abcd',14) value from dual -- 31.右補空格(RPAD的第一個參數(shù)為空格則同space函數(shù))SQL:select 'abcd'+space(10) valueOracle:select RPAD('abcd',14) value from dual-- 32.刪除空格SQL:ltrim,rtrimOracle:ltrim,rtrim,trim-- 33. 重復(fù)字符串SQL:select REPLICATE('abcd',2) value Oracle:沒發(fā)現(xiàn)-- 34.發(fā)音相似性比較(這兩個單詞返回值一樣,發(fā)音相同)SQL:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')Oracle:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual-- SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比較soundex的差-- 返回0-4,4為同音,1最高--------------日期函數(shù)-- 35.系統(tǒng)時間SQL:select getdate() valueOracle:select sysdate value from dual-- 36.前后幾日-- 直接與整數(shù)相加減 -- 37.求日期SQL:select convert(char(10),getdate(),20) valueOracle:select trunc(sysdate) value from dualselect to_char(sysdate,'yyyy-mm-dd') value from dual-- 38.求時間SQL:select convert(char(8),getdate(),108) valueOracle:select to_char(sysdate,'hh24:mm:ss') value from dual-- 39.取日期時間的其他部分SQL:DATEPART 和 DATENAME 函數(shù) (第一個參數(shù)決定) Oracle:to_char函數(shù) 第二個參數(shù)決定--參數(shù)---------------------------------下表需要補充year yy, yyyy quarter qq, q (季度)month mm, m (m O無效)dayofyear dy, y (O表星期)day dd, d (d O無效)week wk, ww (wk O無效)weekday dw (O不清楚)Hour hh,hh12,hh24 (hh12,hh24 S無效)minute mi, n (n O無效)second ss, s (s O無效)millisecond ms (O無效)------------------------------------------------ 40.當月最后一天 SQL:不知道Oracle:select LAST_DAY(sysdate) value from dual -- 41.本星期的某一天(比如星期日) SQL:不知道Oracle:SELECT Next_day(sysdate,7) vaule FROM DUAL; -- 42.字符串轉(zhuǎn)時間SQL:可以直接轉(zhuǎn)或者select cast('2004-09-08'as datetime) valueOracle:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;-- 43.求兩日期某一部分的差(比如秒)SQL:select datediff(ss,getdate(),getdate()+12.3) valueOracle:直接用兩個日期相減(比如d1-d2=12.3)SELECT (d1-d2)*24*60*60 vaule FROM DUAL;-- 44.根據(jù)差值求新的日期(比如分鐘)SQL:select dateadd(mi,8,getdate()) valueOracle:SELECT sysdate+8/60/24 vaule FROM DUAL;-- 45.求不同時區(qū)時間 SQL:不知道Oracle:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
最后還有時區(qū)的函數(shù)和轉(zhuǎn)換沒有記錄下來,因為我還真的沒有用到過。。。
等下次再補充完整
轉(zhuǎn)載于:https://www.cnblogs.com/moonbo/p/4276855.html
總結(jié)
以上是生活随笔為你收集整理的SQL(Oracle)日常使用与不常使用函数的汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Behavior Designer笔记
- 下一篇: 【转】Linux Posix Timer