oracle之單行函數,oracle

來源:互聯網
上載者:User

oracle之單行函數,oracle


單行函數
①.字元函數
LOWER(x):將x中的每個單詞都轉換成小寫
UPPER(x):將x中的每個單詞都轉換成大寫
INITCAP(x): 將x中的每個單詞的首字母轉換成大寫
CONCAT(x,y):用於將y添加到x之後,與||功能一樣
SUBSTR(x,start[,length]):  用於從x中取得從start位置開始的一個子字串,
   選擇性參數length:指定子字串的長度,若未給定,一直取到字串的最後
LENGTH(x):返回x中字元的個數
INSTR(x,find_string[,start][,occurence]):在x中尋找find_string,返回find_string所在的位置,
   選擇性參數start:說明從x中的哪個位置開始尋找,第一個位置為1.
   選擇性參數occurence:說明應該返回find_string第幾次出現的位置
LPAD(x, width [,pad_string]):用於將x的左邊補齊空格,使總長度達到width個字元
   選擇性參數pad_string:若給定,就將x的左邊補齊pad_string字元
RPAD(x,width[,pad_string]):用於將x的右邊補齊空格,使總長度達到width個字元
   選擇性參數pad_string:若給定,就將x的右邊補齊pad_string字元
TRIM(x[,trim_string]):用於從x的左右兩邊截去一些空格
   選擇性參數trim_string:若給定,則從x的左右兩邊截去一些trim_string字元
REPLACE(x,search_string,repalce_string):用於在x中尋找search_string,並將其替換為replace_string
②數字函數
四捨五入:ROUND(x[,y])用於計算對x取整結果
   選擇性參數y:說明對第幾位小數取整,如果沒有指定y,則對x在0位小數處取整
   如果y為負數,則對x在小數點的左邊的第|y|位處取整
截斷:TRUNC(x[,y])用於計算對x截斷的結果
   選擇性參數y:說明對第幾位小數截斷,如果沒有指定y,則對x在0位小數處截斷
   如果y是負數,則對x在小數點的左邊的第|y|位處截斷
求餘:MOD(x,y):用於計算x除以y所得的餘數
③日期函數
MONTHS_BETWEEN(date1,date2):兩個日期相差的月數
ADD_MONTHS(date1,addMonth):向指定日期中加上若干月數
NEXT_DAY(date1,'星期一'):返回下一個星期一的日期
LAST_DAY(date1):本月的最後一天
ROUND(date1,'year'):把date1按年四捨五入,month、day、hh、mi分別是按月、日、時、分,進行四捨五入
TRUNC(date,'month'):把date1按年截斷,month、day、hh、mi分別是按月、日、時、分,進行截斷
④轉換函式
TO_CHAR(date, 'format_model'):按format_model格式,格式化date:"yyyy-mm-dd HH24:MI:SS",返回一個字串
TO_CHAR(number, 'format_model'):按format_model格式,格式化number:"$99,999.99",返回一個字串
TO_DATE(char[, 'format_model']):使用 TO_DATE 函數將字元按format_model格式轉換成日期:"yyyy-mm-dd HH24:MI:SS"
TO_NUMBER(char[, 'format_model']):使用 TO_NUMBER 函數將字元按format_model格式轉換成數字:"$99,999.99"
⑤通用函數:這些函數適用於任何資料類型,同時也適用於空值
NVL (expr1, expr2):如果expr1為null,則返回expr2,若不為null,則返回expr1
NVL2 (expr1, expr2, expr3)如果expr1不為null,則返回expr2,若為null,則返回expr3
NULLIF (expr1, expr2):expr1與expr2相等返回NULL,不等返回expr1
COALESCE (expr1, expr2, ..., exprn):依次參考各參數運算式,遇到非null值即停止並返回該值。
如果所有的運算式都是空值,最終將返回一個空值。使用COALESCE在於大部分包含空值的運算式最終將返回空值。
⑥條件運算式
1)CASE 運算式
case..when..then..
Case運算式,是可以在sql中使用if ..then..else的邏輯判斷,而避免使用PL/SQL的有效方法。
在sql中主要有兩種:簡單case和搜尋case,在plsql中還有兩種case 語句,與decode 類似。(有一定的區別)
簡單的case:
文法:case exp when comexp then returnvalue
            ..when comexp then returnvalue
              Else  Returnvalue
              End
使用規則case簡介。
Case到end之間相當於一個具體的值,可以做運算,取別名,嵌套case 等等。只要把case到end當作一個運算結果的運算式就可以了。
《注意,中間一直到end 都沒有其他標點符號》

搜尋case:
SELECT cust_last_name,
CASE credit_limit WHEN 100 THEN ’Low’
           WHEN 5000 THEN ’High’
                  ELSE ’Medium’
    END
FROM customers;

搜尋case例子

select case when id between 1 and 10 then 'low'
when id between 20 and 30 then 'mid'
when id between 40 and 50 then 'high'
else 'unknow'
end
from product;

update emp set
salary=
case when salary<2000 then salary*1.1
when salary between 2000 and 4000 then salary*1.05
when salary>4000 then salary*1.04
else
null
end;

select case when name like '全球%' then 'true'
when name like '神州行' then 'false'
else 'mm'
end
from trademark;
比較操作,可以使用like,between … and ..,!=,<,>=等操作符以及其他返回boolean類型的操作符。

簡單case和searched case之間的區別:
1. 簡單case只能是when後面的運算式完全符合case後的運算式,相當於 =,所以也不能匹配null。
2. searched case可以作為比較條件,那麼可以使用like,!=,between ..and,<,=,is null,is not null等,比簡單case的使用更加廣泛,完全可以替代簡單case。

2)DECODE 函數
DECODE 中的if-then-else邏輯
在邏輯編程中,經常用到If – Then –Else 進行邏輯判斷。在DECODE的文法中,實際上就是這樣的邏輯處理過程。
它的文法如下:
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
Value 代表某個表的任何類型的任意列或一個通過計算所得的任何結果。
當每個value值被測試,如果value的值為if1,Decode 函數的結果是then1;
如果value等於if2,Decode函數結果是then2;等等。事實上,可以給出多個if/then 配對。
如果value結果不等於給出的任何配對時,Decode 結果就返回else 。

需要注意的是,這裡的if、then及else 都可以是函數或計算運算式。
⑦嵌套函數
F3(F2(F1(col,arg1),arg2),arg3)
單行函數可以嵌套。嵌套函數的執行順序是由內到外


oracle中substr是單行函數

當然是單行函數

單行函數是指:那些每次執行時只操作一行上的資料的函數,例如:to_char()、to_date()、instr()等等

多行函數是指:那些每次執行時操作所有行或者操作分組後的每組中的所有行的函數,例如:count()、sum()、avg()、max()等等
 
oracle資料庫常用的單行函數包括什

LOWER('SQL Course')=sql course
UPPER('SQL Course')=SQL COURSE
CONCAT('Good', 'Morning')=
SUBSTR('String',1,3)=Str
LENGTH('String')=6
INSTR('String', 'r')=3
ROUND(45.926, 2)=45.93
TRUNC(45.926, 2)=45.92
TO_CHAR
NVL
DECODE
AVG
COUNT
MAX
MIN
SUM
等等

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.