資料庫中的函數封裝了一些通用的功能,例如日期類型和字串類型之間的轉換,每個資料庫系統都內建了一些函數,當然使用者也可以自己定義自己的函數。
這些函數可以在sql和後台預存程序或觸發器中使用,但是使用了這些函數的SQL已經不是標準的SQL了,無移植性可言。所以一般情況下,在SQL中盡量不要用自訂的函數,要用的話也最好用在儲存過程或觸發器中。即使資料庫內建的函數也盡量避免,因為每個資料庫的寫法都不同,日期類型和字串的轉換就是個例子。
在使用函數帶來的優點時,同時也失去了移植性。
當然,在移植一個程式到不同資料庫時,使用函數有時可避免修改sql。例如使用來源A資料庫時,sql包含大量的函數fa,但是目標資料庫B中對應的函數是fb,這時可以在資料庫B中建立一個fa的函數,就避免了修改sql語句。
oracle資料庫中函數較多,而且每個函數都有自己的用法,所以要根據具體的函數查詢具體的使用方法,例如:
decode(條件,值1,傳回值1,值2,傳回值2,...值n,回傳值n,預設值)
這個函數運行的結果是,當欄位或欄位的運算的值等於值1時,函數傳回值2,否則傳回值3
當然值1,值2,值3也可以是表達式,這個函數使得某些sql語句簡單了許多
使用方法:
1、比較大小
select decode(sign(變數1-變數2),-1,變數1,變數2) from dual;
--取較小值
sign()函數根據某個值是0、正數還是負數,分別回傳0、1、-1
例如:
變數1=10,變數2=20
則sign(變數1-變數2)回傳-1,decode解碼結果為“變數1”,達到了取較小值的目的。
2、此函數用在SQL語句中,功能說明如下:
Decode函數與一系列嵌套的
IF-THEN-ELSE語句相似。 base_exp與compare1,compare2等依序進行比較。如果base_exp和 第i
個compare項匹配,就回傳第i 個對應的value
。如果base_exp與任何的compare值都不匹配,則傳回default。每個compare值順次值,如果發現一個匹配,則剩下的compare值(如果還有的話)就不再值。一個為NULL的base_exp被認為和NULL
#compare值等價。如果需要的話,每一個compare值都被轉換成和第一個compare 值相同的資料類型,這個資料型別也是傳回值的型別。
1、ABS函數
函數名稱:ABS
主要功能:出對應數字的絕對值。
使用格式:ABS(number)
參數說明:number代表需要絕對值的數值或引用的儲存格。
應用範例:如果在B2單元格中輸入公式:=ABS(A2),則在A2單元格中無論輸入正數(如100)或負數(如-100),B2中均顯示正數(如100)。
特別提醒:如果number參數不是數值,而是某些字元(如A等),則B2中傳回錯誤值「#VALUE!」。
2、AND函數
函數名稱:AND
主要功能:傳回邏輯值:如果所有參數值均為邏輯“真(TRUE)”,則傳回邏輯“真(TRUE)”,反之傳回邏輯“假(FALSE)”。
使用格式:AND(logical1,logical2, ...)
參數說明:Logical1,Logical2,Logical3…:表示待測試的條件值或表達式,最多這30個。
應用範例:在C5儲存格中輸入公式:=AND(A5>=60,B5>=60),確認。若C5中回傳TRUE,表示A5和B5中的數值皆大於等於60,若傳回FALSE,表示A5和B5中的數值至少有一個小於60。
特別提醒:如果指定的邏輯條件參數包含非邏輯值時,則函數傳回錯誤值「#VALUE!」或「#NAME」。
3、AVERAGE函數
函數名稱:AVERAGE
主要功能:出所有參數的算術平均值。
使用格式:AVERAGE(number1,number2,…)
參數說明:number1,number2,…:需要平均值的數值或引用儲存格(區域),參數不超過30個。
應用範例:在B8單元格中輸入公式:=AVERAGE(B7:D7,F7:H7,7,8),確認後,即可出B7至D7區域、F7至H7區域中的數值和7 、8的平均值。
特別提醒:如果引用區域中包含「0」值儲存格,則計算在內;如果引用區域中包含空白或字元儲存格,則不計算在內。
4、COLUMN 函數
函數名稱:COLUMN
主要功能:顯示所引用儲存格的列標號值。
使用格式:COLUMN(reference)
參數說明:reference為引用的儲存格。
應用範例:在C11儲存格中輸入公式:=COLUMN(B11),確認後顯示為2(即B列)。
特別提醒:如果在B11單元格中輸入公式:=COLUMN(),也顯示出2;與之相對應的還有一個返回行標號值的函數-ROW(reference)。
5、CONCATENATE函數
函數名稱:CONCATENATE
主要功能:將多個字元文字或儲存格中的資料連接在一起,顯示在一個儲存格中。
使用格式:CONCATENATE(Text1,Text…)
參數說明:Text1、Text2…為需要連接的字元文字或引用的儲存格。
應用範例:在C14單元格中輸入公式:=CONCATENATE(A14,"@",B14,".com"),確認後,即可將A14單元格中字元、@、B14單元格中的字元和.com連接成一個整體,顯示在C14單元格中。
特別提醒:如果參數不是引用的單元格,且為文字格式的,請給參數加上英文狀態下的雙引號,如果將上述公式改為:=A14&"@"&B14&".com",也能達到相同的目的。
以上是資料庫中的函數用途的詳細內容。更多資訊請關注PHP中文網其他相關文章!