一、字符函數
1、大小寫處理函數
1)LOWER:轉換字符值爲小寫
2)UPPER:轉換字符值爲大寫
3)INITCAP:轉換每個單詞的首字母值爲大寫,所有其它值爲小寫
2、字符處理函數
1)CONCAT:連接值在一起 (CONCAT 函數有兩個輸入參數),等價於連接運算符(||)
CONCAT(column1|expression1,column2|expression2)
2)SUBSTR:選取給定位置和長度的子字符串
SUBSTR(column|expression,m[,n])
從字符返值中回指定的字符,開始位置在 m,n字符長度 (如果 m 是負數,計數從字符值末尾開始;如果 n 被忽略,返回到串結束的所有字符)
3)LENGTH:以數字值顯示一個字符串的長度
4)INSTR:找到一個給定字符的數字位置
INSTR(column|expression,‘string’, [,m], [n] )
返回一個命名串的數字位置。隨意地,你可以提供一個位置m作爲查找的開始,在字符串中第n次發現的位置。
m和n的默認值是1,意味着在起始開始查找,並且報告第一個發現的位置。
5)LPAD/RPAD:用給定的字符左填充字符串到給定的長度/用給定的字符右填充字符串到給定的長度
LPAD(column|expression, n,'string')
RPAD(column|expression, n,'string')
填充字符值左、右調節到n字符位置的總寬度
6)TRIM:從一個字符串中去除頭或尾的字符 (或頭和尾) (如果 trim_character 或 trim_source 是一個文字字符,必須放在單引號中。)
TRIM([LEADING|TRAILING|BOTH][trimchar FROM] string)
其中:LEADING 指明僅僅將字符串的前綴字符刪除
TRAILING 指明僅僅將字符串的尾隨字符刪除
BOTH 指明既刪除前綴字符,也刪除尾隨字符。這也是默認方式
string 任意一待處理字符串
trimchar 可選項。指明試圖刪除什麼字符,默認被刪除的字符是空格
7)REPLACE:從字符串查找一個文本表達式,如果找到,用指定的置換串代替它
二、數字函數
函數 | 含義 | 輸入 | 輸出 |
---|---|---|---|
Abs(n) | 得到n的絕對值 | Select abs(-15) from dual | 15 |
Ceil(n) | 計算大於或等於n的最小整數值 | Select ceil(44.778) from dual | 45 |
Cos(n) | 返回n的餘弦值. n的單位是弧度 | Select cos(180) from dual | -.5984601 |
Cosh(n) | 計算n的雙曲餘弦值 | Select cosh(0) from dual | 1 |
Floor(n) | 返回小於等於n的最大整數值 | Select floor(100.2) from dual | 100 |
Power(m,n) | 計算m的n次冪 | Select power(4,2) from dual | 16 |
Mod(m,n) | 返回m除以n的餘數.如果n是0,則返回m | Select mod(10,3) from dual | 1 |
Round(m,n) |
計算保留到小數點右邊n位的m值. n缺省設置爲0,這會將m保留爲最接近的整數.如果n小於0,保留到小數點左邊相應的位. n必須是整數 |
Select round(100.256,2) from dual | 100.26 |
Trunc(m,n) | 計算截尾到n位小數的m值. n缺省爲0,結果變爲一個整數值.如果n是一個負數,那麼就截尾到小數點左邊對應的位上 | Select trunc(100.256,2) from dual | 100.25 |
Sqrt(n) | 返回n的平方根. n必須是正數 | Select sqrt(4) from dual | 2 |
Sign(n) | 獲得n的符號位標誌.如果n<0返回-1.如果n=0返回0.如果n>0返回1 | Select sign(-30) from dual | -1 |
三、日期函數
1、oracle日期使用:
RR格式與YY格式:簡單的講,RR 格式將日期中年的部分解釋爲從 1950 到 1999; YY 格式將日中年的部分解釋爲當前世紀 (2090)
2、日期函數
MONTHS_BETWEEN:兩個日期之間的月數
ADD_MONTHS:加日曆月到日期
NEXT_DAY:下個星期幾是幾號
LAST_DAY:指定月的最後一天
ROUND:四捨五入日期
TRUNC:截斷日期
四、轉換函數
1、顯示數據類型轉換
常用的轉換函數:TO_CHAR;TO_DATE;TO_NUMBER
2、隱式數據類型轉換
在oracle中,在不同的數據類型之間關聯,如果不顯式轉換數據,則它會根據以下規則對數據進行隱式轉換
簡單總結:比較時,一般是字符型轉換爲數值型,字符型轉換爲日期型
算術運算時,一般把字符型轉換爲數值型,字符型轉換爲日期型
連接時(||),一般是把數值型轉換爲字符型,日期型轉換爲字符型
賦值、調用函數時,以定義的變量類型爲準。
五、通用函數
這些函數可用於任意數據類型,用來轉換空值的函數
1、NVL (expr1, expr2) expr1爲NULL,返回expr2;不爲NULL,返回expr1。注意兩者的類型要一致
2、NVL2 (expr1, expr2, expr3) expr1不爲NULL,返回expr2;爲NULL,返回expr3。expr2和expr3類型不同的話,expr3會轉換爲expr2的類型
3、NULLIF (expr1, expr2) 相等返回NULL,不等返回expr1
4、COALESCE (expr1, expr2, ..., exprn) 列表中第一個非空的表達式是函數的返回值,如果所有的表達式都是空值,最終將返回一個空值。
5、嵌套函數:單行函數能夠被嵌套任意層次,嵌套函數的計算是從最裏層到最外層
6、條件表達式
在 SQL 語句中提供 IF-THEN-ELSE 邏輯的使用
• 兩種用法:
– CASE 表達式
– DECODE 函數
1) CASE 表達式:使得 IF-THEN-ELSE 條件判斷容易實現
2) DECODE 函數:使得 CASE 或者 IF-THEN-ELSE 條件判斷容易實現: