Oracle 的基本函式介紹

weixin_33860553發表於2010-04-09

Oracle 的函式分為基本函式和分析函式,

其中基本函式是最常用的,而分析函式的話,

傳言是在資料倉儲這類的東西中才會經常用到,

在這篇博文中,則只是介紹最常用的 Oracle 基本函式。

介紹呢,會依照下面的路線進行,

字元函式

數字函式

日期函式

轉換函式

組函式

先是字元函式開始吧

1.  ASCII(c)

    其中 c 呢是一個字串引數,這個函式的作用就是通過傳遞進去的字串,

    然後返回這個字串第一個字母的 ASCII 碼值,

image

2. CHR(i)

    其中的 i 是一個數字,然後會返回一個用十進位制表示的字元,也就是 ASCII(c)的逆函式

image

3. CONCAT(c1,c2)

    這個函式中有兩個字串引數,這個函式的功能就是將兩個字串拼接起來

image

4. INITCAP(c1)

    這個函式比較特殊,其擁有一個字串引數 c1 ,

    它的功能是將字串中的每個單詞的第一個字母大寫,而其他字母小寫返回,

    其中單詞又空格,控制字元,標點符號來限制

image

5. INSTR(c1,c2,i,j)

    這個函式呢,其中引數比較多,有四個,c1 和 c2 為字串,而 i , j 則為數字,

    i 和 j 兩個引數是可選的,也就是說可以沒有這兩個引數,這是因為這兩個引數均有預設值,

    均為 1

    這個函式的功能為,返回 c2 在 c1 中第 j 次出現的位置,其實這也就是一個搜尋過程,

    而搜尋的起始位置則是由 i 確定的,i 確定從 c1 中第 i 個字元開始匹配

image

6. LENGTH(c)

    這個函式呢,功能就很明顯了,就是返回傳遞進去的引數 c 這個字串的長度

image

7. LOWER(c)

    這個函式的功能也是比較明顯的,

    就是將傳遞進來的引數即一個字串 c 全部轉換為小寫後返回

image

8. UPPER(c)

    這個函式的功能就是將 c 這個字串中的字元全部大寫後返回

image

9. LPAD(c1,i,c2)

    其中有三個引數,c1 和 c2 是字串,而 i 則為數字,   

    如果 i 小於 c1 的長度,那麼只返回 i 那麼長的 c1 的字元,其他的將被截去,

    否則在 c1 的左側使用 c2 字串補足到長度 i ,可以多次重複,

    c2 的預設值為單空格。這個函式返回的字串的長度一定是 i

image

10. RPAD(c1,i,c2)

    這個函式呢和上面的功能差不多,只不過上面的 LPAD 函式是從左到右補充,

    而這個 RPAD 則是從右到左進行補充,

    也就是當 i 的值小於 c1 的長度時,直接將 c1 進行擷取然後返回長度為 i 的字串,

    當 i 的值大於 c1 的長度時,便使用 c2 對 c1 從右到左進行補充

image

11. LTRIM(c1,c2)

    這個函式的功能是把 c1 最左邊的字元去掉,使其第一個字元不在 c2 這個字串中

    如果不能理解的,請注意比較下面的截圖中的各個結果

image

12. RTRIM(c1,c2)

    這個函式也和上面的函式功能類似,只不過不是從左邊開始比較了,而是從字串 c1 的右邊比較,

    使 c1 的最右邊的字母不在 c2 這個字串中

image

13. REPLACE(c1,c2,c3)

    這個函式的作用比較特殊,是使用 c3 來代替在 c1 中出現的 c2 ,然後將結果返回

image

14. SUBSTR(c1,i,j)  

    上面的引數中 c1 是字串,i 和 j 是數字,而且 j 這個引數是可選的,即是可以沒有的,

    從 c1 的第 i 位開始返回長度為 j 的擷取後的字串,如果 j 位空,則直到 c1 的尾部

    說白了你,就是 C# 中的 substring 函式

image

15. TRANSLATE(c1,c2,c3)

    這個函式的功能就是將 c1 和 c2 中相同的字元使用 c3 來代替,然後再返回結果

    這個函式呢,由於比較難以解釋,所以還需按著下面的截圖來說明,

    比如,BaoBeiMe 中的第一個字母和 Bei 中的第一個字母是相同的,

    故使用 Xza 中的第一個字母取代,

    而 BaoBeiMe 中的 Bei 和 Bei 中的三個字元全部匹配,所以必須使用 Xza 一起進行替代 Bei

image

16. TRIM(c1 from c2)

    該函式使用者從字串的頭部,尾部和兩端截斷特定的字元,

    c1 為要擷取的字元,c2 為源字串

image 

 

 

再是數字函式

這裡說到數學函式呢,說實在的,和 C# 裡的 Math 下的數學函式差不多了,

需要注意的就是在 Oracle 中所有的三角函式的引數和值都是弧度而非角度。

1. ABS(n)

    這個函式見多了的,就是求 n 的絕對值

image

2. CEIL(n)

    返回 >= n 的最小整數

image

3. FLOOR(n)

    返回 <= n 的最大整數

image

4. SIN(n)

   返回弧度為 n 的正弦值

image

5. COS(n)

    返回弧度為 n 的餘弦值

image

6. TAN(n)

    返回弧度為 n 的正切值

image

7. EXP(n)

    返回 e 的 n 次冪值即 e^n

image

8. POWER(n1,n2)

    返回 n1 的 n2 次方,即 n1^n2

image

9. MOD(n1,n2)

   返回 n1 除以 n2 的餘數,即 n1%n2

image

10 . LN(n)

    返回 n 的自然對數

image

11. LOG(n1,n2)

    返回以 n1 為底的 n2 的對數

image

12. SQRT(n)

    返回 n 的平方根

image

13. TRUNC(n1,n2)

    返回截尾到 n2 位小數的 n1 的值,n2 的預設值為 0,

    當 n2 為預設值設定時,會將 n1 截尾為整數,如果 n2 為負數,

    就截尾在小數點左邊的相應的位上。

image

14. ROUND(n1,n2)

    返回四捨五入小數點右邊 n2 位的 n1 的值,n2 的預設值為 0

image

15. SIGN(n)

    n < 0 則返回 –1

    n > 0 則返回 1

    n = 0 則返回 0

image

 

 

再是日期函式

既然是日期函式的話,那麼肯定操作的就是日期型別的資料了,

1. SYSDATE

    這個函式呢,比較特殊,沒有引數,所以也不需要加什麼括號之類的了,

    直接裸用就 OK 了,這個函式的作用就是返回當前的時間和日期

image

2. ADD_MONTHS(d,i)

    返回日期 d 加上 i 個月後的結果, i 可以是任意整數。

image

3. LAST_DAY(d)

    返回日期 d 所在月份的最後一天

image

4. MONTHS_BETWEEN(d1,d2)

    返回日期 d1 和 日期 d2 之間月的數目

image 

5. TRUNC(d,format)

    返回由 format 指定的單位的日期 d

    比如您可以指定 format 為 y ,則表明是返回指定日期所在的年(以年為單位)

    如果指定 format 為 mm ,則表明是返回指定日期所在的月(以月為單位)

    如果指定 format 為 d ,則表明是返回指定日期所在的天(以天為單位)

image

再是轉換函式

轉換函式,用於在多種資料型別之間轉換

1. ROWIDTOCHAR(rowid)

    這個函式的功能就是將型別為 ROWID 的引數 rowid 轉換為字串型別

image

2. CHARTOROWID(c)   

    這個函式呢,和上面的 ROWIDTOCHAR 的功能相反,是將字串 c 轉換為 ROWID 資料型別

image

3. TO_CHAR(x,format)

    這個函式的功能就是將一個引數 x 轉換為字串型別,

    其中 x 可以是 number 或者 date 型別

image

4. TO_DATE(c,format)

    將字串轉換為 Date 資料型別

image

5. TO_NUMBER(c)

    將一個字串引數轉換為 number 資料型別

image

再是組合函式

這個呢就比較常用了,就是 COUNT() 啊,AVG()啊,MAX(),MIN()這些了

這些就不多做介紹了

 

相關文章