<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Oracle常用函數(shù)整理

          共 5361字,需瀏覽 11分鐘

           ·

          2021-02-02 07:00

          點擊關(guān)注上方“SQL數(shù)據(jù)庫開發(fā)”,

          設(shè)為“置頂或星標”,第一時間送達干貨

          之前已經(jīng)給小伙伴們整理了SQL Server和Mysql的常用函數(shù),還沒有看的可以戳下面的鏈接:

          SQL Server常用函數(shù)整理

          MySQL常用函數(shù)整理

          今天再給大家分享一下Oracle的常用函數(shù)。


          1、字符函數(shù)

          字符函數(shù)接受字符參數(shù),這些參數(shù)可以是表中的列,也可以是一個字符串表達式。常用的字符函數(shù):

          ASCII(X)?????????--返回字符X的ASCII碼  ???????????????? --如:ASCII('A')?結(jié)果:65CONCAT(X,Y)??????--連接字符串X和Y ?                 --如:CONCAT('SQL','數(shù)據(jù)庫開發(fā)')  結(jié)果:SQL數(shù)據(jù)庫開發(fā)CHR(X)???????????--返回X所指代的字符???如:CHR(65)  結(jié)果:AINITCAP(X)???????--返回X每個單詞首字母大寫的格式?????????????????? --如 INITCAP('hello world')?結(jié)果:Hello WorldINSTR(X,STR[,START[,N]])???????????????????--從X中查找str,并返回它出現(xiàn)的位置,可以指定從start開始,也可以指定從n開始?????????????????--如:INSTR('ABCDABCD','AB',4,1) 結(jié)果:5LENGTH(X)????????--返回X的長度??如:LENGTH('ABC') 結(jié)果:3LOWER(X)???????? --X轉(zhuǎn)換成小寫UPPER(X)???????? --X轉(zhuǎn)換成大寫LTRIM(X[,TRIM_STR]) ??????????????????????????????? --把X的左邊截去trim_str中任一字符串,缺省截去空格RTRIM(X[,TRIM_STR])???????????????????????????????--把X的右邊截去trim_str中任一字符串,缺省截去空格TRIM([TRIM_STR??FROM]X)???????????????????????--把X的兩邊截去trim_str字符串,缺省截去空格REPLACE(X,old,new)                ???????????????? --在X中查找old字符串,并替換成new字符串?????????????????--如:REPLACE('ABCDABCD','AB','X') 結(jié)果:XCDXCDSUBSTR(X,start[,length])          ?????????????????--返回X的字串,從start處開始,截取length個字符,缺省length,默認到結(jié)尾?????????????????--如:SUBSTR('ABCDEFGH',3,5) 結(jié)果:CDEFG

          (提示:可以左右滑動代碼)


          2、數(shù)字函數(shù)

          數(shù)字函數(shù)接受數(shù)字參數(shù),參數(shù)可以來自表中的一列,也可以是一個數(shù)字表達式。

          ABS(X)           --X的絕對值ACOS(X)          --X的反余弦COS(X)???????????--X的余弦CEIL(X)          --大于或等于X的最小值FLOOR(X)         --小于或等于X的最大值LOG(X,Y)         --X為底Y的對數(shù)MOD(X,Y)         --X除以Y的余數(shù)POWER(X,Y)       --X的Y次冪ROUND(X[,Y])     --X在第Y位四舍五入SQRT(X)          --X的平方根TRUNC(X[,Y])     --X在第Y位截斷
          說明:a. ROUND(X[,Y]),四舍五入。在缺省 y 時,默認 y=0;比如:ROUND(3.56)=4。y 是正整數(shù),就是四舍五入到小數(shù)點后 y 位。ROUND(5.654,2)=5.65。y 是負整數(shù),四舍五入到小數(shù)點左邊|y|位。ROUND(351.654,-2)=400。
          b. TRUNC(x[,y]),直接截取,不四舍五入。在缺省 y 時,默認 y=0;比如:TRUNC (3.56)=3。Y是正整數(shù),就是四舍五入到小數(shù)點后 y 位。TRUNC (5.654,2)=5.65。y 是負整數(shù),四舍五入到小數(shù)點左邊|y|位。TRUNC (351.654,-2)=300。


          3、日期函數(shù)

          日期函數(shù)對日期進行運算。常用的日期函數(shù)有:

          ADD_MONTHS(d,n)       --在某一個日期 d 上,加上指定的月數(shù) n,返回計算后的新日期。                      --d 表示日期,n 表示要加的月數(shù)。CURRENT_DATE????????  --返回當前日期,包含時間部分LAST_DAY(d)?????????? --返回指定日期當月的最后一天。MONTHS_BETWEEN(d1,d2)?--返回日期d1月d2之間的相差的月數(shù)NEXT_DAY(date,char)   --從日期參數(shù)中返回char參數(shù)所指定 下一天??????????????????????--如:NEXT_DAY(DATE'2020-6-27', '星期二')?結(jié)果:2020/6/30ROUND(d[,fmt])??????? --返回一個以 fmt 為格式的四舍五入日期值, d 是日期, fmt 是格式模型。                      --默認 fmt 為 DDD,即月中的某一天。1、如果 fmt 為“YEAR”則舍入到某年的 1 月 1 日,即前半年舍去,后半年作為下一年。2、如果 fmt 為“MONTH”則舍入到某月的 1 日,即前月舍去,后半月作為下一月。3、默認為“DDD”,即月中的某一天,最靠近的天,前半天舍去,后半天作為第二天。4、如果 fmt 為“DAY”則舍入到最近的周的周日,即上半周舍去,下半周作為下一周周日。
          例如SELECT SYSDATE,ROUND(SYSDATE),ROUND(SYSDATE,'day'),ROUND(SYSDATE,'month'),ROUND(SYSDATE,'year') FROM dual;與 ROUND 對應(yīng)的函數(shù)時 TRUNC(d[,fmt])對日期的操作, TRUNC 與 ROUND 非常相似,只是不對日期進行舍入,直接截取到對應(yīng)格式的第一天。
          EXTRACT(fmt FROM d) --提取日期中的特定部分。fmt 為:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。其中 YEAR、MONTH、DAY可以為 DATE 類型匹配,也可以與 TIMESTAMP 類型匹配;但是 HOUR、MINUTE、SECOND 必須與 TIMESTAMP 類型匹配。HOUR 匹配的結(jié)果中沒有加上時區(qū),因此在中國運行的結(jié)果小 8 小時。
          例:SELECT SYSDATE "date", EXTRACT(YEAR FROM SYSDATE) "year", EXTRACT(MONTH FROM SYSDATE) "month", EXTRACT(DAY FROM SYSDATE) "day", EXTRACT(HOUR FROM SYSTIMESTAMP) "hour", EXTRACT(MINUTE FROM SYSTIMESTAMP) "minute", EXTRACT(SECOND FROM SYSTIMESTAMP) "second"FROM dual;


          4、轉(zhuǎn)換函數(shù)

          轉(zhuǎn)換函數(shù)將值從一種數(shù)據(jù)類型轉(zhuǎn)換為另外一種數(shù)據(jù)類型。常見的轉(zhuǎn)換函數(shù)有:

          TO_CHAR(d|n[,fmt])       --把日期和數(shù)字轉(zhuǎn)換為制定格式的字符串。Fmt是格式化字符串例如:SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS') "date" FROM dual;代碼解析:在格式化字符串中,使用雙引號對非格式化字符進行引用針對數(shù)字的格式化,格式化字符有:9      --指定位置處顯示數(shù)字.??????--指定位置返回小數(shù)點,      --指定位置返回一個逗號$      --數(shù)字開頭返回一個美元符號EEEE   --科學(xué)計數(shù)法表示L      --數(shù)字前加一個本地貨幣符號PR?????--如果數(shù)字式負數(shù)則用尖括號進行表示?
          TO_DATE(X [,fmt]) --把一個字符串以fmt格式轉(zhuǎn)換成一個日期類型
          TO_NUMBER(X [,fmt])????? --把一個字符串以fmt格式轉(zhuǎn)換為一個數(shù)字


          5、聚合函數(shù)

          統(tǒng)計函數(shù)(聚合函數(shù))

          AVG()                   --求平均值COUNT()                 --統(tǒng)計數(shù)目MAX()                   --求最大值MIN()                   --求最小值SUM()                   --求和


          6、分析函數(shù)

          分析函數(shù)語法function_name(<argument>,<argument>...) over(<partition_Clause><order by_Clause>);function_name():函數(shù)名稱argument:參數(shù)over(?):開窗函數(shù)partition_Clause:分區(qū)子句,數(shù)據(jù)記錄集分組,partition by...order by_Clause:排序子句,數(shù)據(jù)記錄集排序,order by...
          COUNT()?OVER() --統(tǒng)計分區(qū)中各組的行數(shù),partition?by?可選,order?by?可選SUM() OVER() --統(tǒng)計分區(qū)中記錄的總和,partition by 可選,order by 可選AVG() OVER() --統(tǒng)計分區(qū)中記錄的平均值,partition by 可選,order by 可選MIN() OVER() --統(tǒng)計分區(qū)中記錄的最小值,partition by 可選,order by 可選MAX()?OVER()? --統(tǒng)計分區(qū)中記錄的最大值,partition?by?可選,order?by?可選RANK()?OVER()???--跳躍排序,partition?by?可選,order?by?必選DENSE_RANK() OVER() --連續(xù)排序,partition by 可選,order by 必選ROW_NUMBER() OVER() --排序,無重復(fù)值,partition by 可選,order by 必選NTILE(n)?OVER()? --partition?by?可選,order?by?必選????n表示將分區(qū)內(nèi)記錄平均分成n份,多出的按照順序依次分給前面的組FIRST_VALUE() OVER() --取出分區(qū)中第一條記錄的字段值,partition by 可選,order by 可選LAST_VALUE()?OVER()? --取出分區(qū)中最后一條記錄的字段值,partition?by?可選,order?by?可選LAG()?OVER()? --取出前n行數(shù)據(jù),partition?by?可選,order?by?必選LEAD()?OVER()? --取出后n行數(shù)據(jù),partition?by?可選,order?by?必選PERCENT_RANK()?OVER()??--partition?by?可選,order?by?必選 所在組排名序號-1除以該組所有的行數(shù)-1,排名跳躍排序


          7、其他函數(shù)

          NVL(X,VALUE)             --如果X為空,返回value,否則返回XNVL2(x,value1,value2)????--如果x非空,返回value1,否則返回value2


          我是岳哥,最后給大家分享我寫的SQL兩件套:《SQL基礎(chǔ)知識第二版》《SQL高級知識第二版》的PDF電子版。里面有各個語法的解釋、大量的實例講解和批注等等,非常通俗易懂,方便大家跟著一起來實操。


          有需要的讀者可以下載學(xué)習(xí),在下面的公眾號「數(shù)據(jù)前線」(非本號)后臺回復(fù)關(guān)鍵字:SQL,就行

          數(shù)據(jù)前線
          ——End——

          后臺回復(fù)關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨

          后臺回復(fù)關(guān)鍵字:進群,帶你進入高手如云的交流群。

          推薦閱讀

          瀏覽 106
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线观看黄色网页 | 高潮视频在线观看免费 | 国产在线精品色 | 色婷婷导航 | 四虎久久|