運算式的函式
函式是您可以使用的預存作業。 資料庫管理系統提供基本函式,您也可以建立自己的使用者定義函式。
建置運算式時可以呼叫許多的函式,包括:
字串 (字元) 函式。
日期函式。
數學函式。
系統函式。
其他函式,例如轉換資料之資料型別的函式。
使用者定義函式。
大體而言,如果您很熟悉您的資料庫中可以使用的函式,可以使用資料庫支援的函式名稱和語法。 有時候,例如建立檢視、預存程序或觸發程序時,必須使用資料庫特定的函式名稱和語法。
查詢和檢視表設計工具提供下列功能,協助您處理函式:
在函式引數中正確地插入引號。
驗證引數的資料型別。
驗證傳回值的資料型別。
如需資料庫支援之函式的詳細資訊,請參閱資料庫的文件
注意事項 |
---|
您可以使用特殊的函式集,例如 SUM( ) 和 AVG( ) 等彙總函式 (Aggregate Function),建立摘要資料的查詢。如需詳細資訊,請參閱摘要查詢結果。 |
字串函式
下列用於管理字元字串的函式,提供在許多資料庫中可用之函式的範例。
Function |
描述 |
範例 |
---|---|---|
LCASE( )*、LOWER( ) |
將字串轉換為小寫。 |
若要讓第一個字元變成大寫,請使用:
若要將其餘的字元轉換為小寫,請使用:
將第一個字元轉換為大寫且其餘字元轉換為小寫後,顯示姓氏。 |
LTRIM( ) |
移除字串的前置空格。 |
將前面無關的空格移除後,顯示地址資料行。 |
SUBSTRING( ) |
從字串中擷取一個或多個字元。 |
顯示電話號碼的前三個字元 (區碼)。 |
UCASE( )*、UPPER( ) |
將字串轉換為大寫。 |
先將 lname 資料行的內容轉換為大寫,然後再與特定值比較,可避免在區分大小寫的搜尋時發生不符合的情形。 |
如果呼叫做為 ODBC 函式,請使用下列語法:{ fn LCASE(text) }。
日期函式
下列函式 (或其他類似的函式) 可在許多資料庫中使用。
Function |
描述 |
範例 |
---|---|---|
DATEDIFF( ) |
計算兩個日期間的間隔。 |
找出年資五年以上的員工。 |
DATEPART( ) |
傳回日期或日期時間資料行的指定部分,包括天、月或年。 |
只顯示員工的年資 (不是完整的日期)。 |
CURDATE( )*、GETDATE( ) 或 DATE( ) |
以日期時間格式傳回目前的日期。 此函式可以做為其他日期函式的輸入,例如從今天往前或往後計算間隔。 |
|
數學函式
大多數的資料庫提供可在執行計算時使用的一些數學函式。 下列函式是許多資料庫中一般可用的函式。
注意事項 |
---|
您可以使用彙總函式 AVG( )、COUNT( )、MAX( )、MIN( ) 及 SUM() 在報告中建立平均和總計。 |
Function |
描述 |
範例 |
---|---|---|
ROUND( ) |
將數字四捨五入到指定的小數位數 |
根據折扣顯示總價,然後將結果四捨五入至小數點後兩位。 |
FLOOR( ) |
將數字無條件向下捨去至最近 (最小) 的整數 |
將 titles 資料表的所有價格向下捨去至最近的整數。 |
CEILING( ) |
將數字無條件向上進位到最近的整數 |
將 titles 資料表的 title 和 price (向上進位到最近的整數) 複製到 archivetitle 資料表。 |
系統函式
大多數的資料庫都提供特殊的函式,讓您用於傳回目前資料庫、目前使用者或伺服器的資訊。 下列函式是許多資料庫中一般可用的函式。
Function |
描述 |
範例 |
---|---|---|
DATALENGTH( ) |
傳回指定運算式使用的位元組數目。 |
列出姓氏和名字所需的位元組數目。 |
USER( )*、 USER_NAME( ) |
傳回目前使用者的名字。 |
為執行查詢的業務員建立一份客戶清單。 |
其他函式
除了前面列出的函式以外,某些資料庫還提供其他函式以協助您建立查詢,例如資料型別轉換或其他公用程式函式。 下列函式說明了許多資料庫都提供的公用程式函式型別。
Function |
描述 |
範例 |
---|---|---|
CONVERT( ) |
轉換資料的資料型別。 適用於格式化資料,或者在需要不同資料型別的函式中使用某個資料行的內容做為引數。 |
顯示日期,前面加上標題,CONVERT( ) 函式會利用日期建立字串,以便和常值字串連結。 |
SOUNDEX( ) |
傳回指定運算式的 Soundex 碼,可用於建立「相似音」的搜尋。 |
搜尋發音類似 "Michael" 的名字。 |
STR( ) |
將數字資料轉換為字元字串,如此可用文字運算子來處理。 |
將 job_id 資料行顯示為單一字串。 |