Db2
Db2 常用函數 Db2 add_months ( date_expression|datetime_expression , integer_expression ) 傳回對 date_expression 或 datetime_expression 加上 integer_expression 月數後產生的日期。Date_expression 和 datetime_expression 可以是日期或日期時間值,或日期或日期時間的字串表示法。 add_months ( current_date , 3 ) 結果:傳回比現行日期晚三個月的日期。 ascii ( string_expression ) 以整數傳回引數最左側字元的 ASCII 字碼值。 ascii ( a ) 結果:傳回 65,即 "a" 的 ASCII 字碼值。 chr ( integer_expression ) 傳回一個字元,此字元具有 "integer_expression" 所指定的 ASCII 字碼值。"Integer_expression" 應該在 0 到 255 之間。 chr ( 65 ) 結果:傳回 a,即值為 65 的 ASCII 字碼值的字元。 char ( expression )   替代語法: char ( string_expression  , integer_expression ) 傳回 "string_expression" 的固定長度字串表示法,而長度為 "integer_expression"。   替代語法 2: char ( decimal_expression  , character_expression ) 傳回使用小數點 "character_expression" 的 "decimal_expression" 的字串表示法。 傳回日期/時間值或小數的字串表示法。 ceiling ( numeric_expression ) 傳回大於或等於 "numeric_expression" 的最小整數。 ceiling ( 0.75 ) 結果:傳回 0.8。 coalesce coalesce ( expression_list ) 傳回第一個非空值的引數(如果所有引數均為空值,則會傳回空值)。Coalesce 函數需要兩個以上的引數。 coalesce ( [單價], [單位售價] ) 結果:傳回單價,如果單價為空值,則會傳回單位售價。 concat ( string_expression1, string_expression2 ) 傳回連結 "string_expression1" 與 "string_expression2" 後得到的字串。 concat ( [Sales target (query)].[Sales staff].[First name], [Sales target (query)].[Sales staff].[Last name] ) 結果:傳回名字與姓氏;例如 Bob Smith。 date ( expression ) 傳回單一輸入值的日期。"Expression" 可以是字串或日期的整數表示法。 date ( '1998-01-08' ) 結果:傳回 8 January 1998。 day ( date_expression ) 傳回 "date_expression" 中的日值(1 到 31)。"Date_expression" 可以是日期值或日期的字串表示法。 day ( '1998-01-08' ) 結果:傳回 8。 dayname ( date_expression ) 針對 "date_expression" 中代表日的部分,傳回包含日的資料來源特定的名稱字串(例如,若為使用英文的資料來源,會傳回 Sunday 到 Saturday 或 Sun. 到 Sat.,若為使用德文的資料來源,則會傳回 Sonntag 到 Samstag)。"Date_expression" 可以是日期值或日期的字串表示法。 dayname ( '1998-01-08' ) 結果:傳回 Thursday。 dayofweek ( date_expression ) 以範圍從 1 到 7 的整數傳回 "date_expression" 的星期值,其中 1 代表星期日。"date_expression" 可以是日期值或日期的字串表示法。 dayofweek ( '1998-01-08' ) 結果:傳回 5。 dayofweek_iso ( date_expression ) 以範圍從 1 到 7 的整數傳回 "date_expression" 的星期值,其中 1 代表星期一。"date_expression" 可以是日期值或日期的字串表示法。 dayofweek_iso ( '1998-01-08' ) 結果:傳回 4。 dayofyear ( date_expression ) 以範圍從 1 到 366 的整數傳回 "date_expression" 是在該年度的第幾天。"Date_expression" 可以是日期值或日期的字串表示法。 dayofyear ( current_date ) 結果:傳回現行日期在該年度是第幾天;例如,如果是 1 月 28,表示式將傳回 28。 days ( expression ) 傳回日期的整數表示法。"Expression" 可以是日期值或日期的字串表示法。 dec ( string-expression [ , precision-integer [ , scale-integer [ , decimal-character ] ] ] ) 使用 "precision-integer" 及 "scale-integer" 來傳回 "string-expression" 的十進位表示法。"decimal-character" 可用來指定用於定界 "string-expression" 中小數位數的單位元組字元常數。"string-expression" 必須格式化為 SQL 整數或十進位常數。   替代語法: dec ( numeric-expression [ , precision-integer [ , scale-integer ] ] ) 傳回使用 "precision-integer" 和 "scale-integer" 的 "numeric-expression" 的十進位表示法。   替代語法 2: dec ( datetime-expression [ , precision-integer [ , scale-integer ] ] ) 傳回使用 "precision-integer" 和 "scale-integer" 的 "datetime-expression" 的十進位表示法。 decimal ( string-expression [ , precision-integer [ , scale-integer [ , decimal-character ] ] ] ) 使用 "precision-integer" 及 "scale-integer" 來傳回 "string-expression" 的十進位表示法。"decimal-character" 可用來指定用於定界 "string-expression" 中小數位數的單位元組字元常數。"string-expression" 必須格式化為 SQL 整數或十進位常數。   替代語法: decimal ( numeric-expression [ , precision-integer [ , scale-integer ] ] ) Returns the decimal representation of "numeric-expression" using "precision-integer" and "scale-integer".   替代語法 2: decimal ( datetime-expression [ , precision-integer [ , scale-integer ] ] ) 傳回使用 "precision-integer" 和 "scale-integer" 的 "datetime-expression" 的十進位表示法。 difference ( string_expression1 , string_expression2 ) 傳回一個整數值,代表由 "string_expression1" 和 "string_expression2" 的資料來源特定的 soundex 函數傳回的值之間的差異。會傳回範圍從 0 到 4 的值,其中 4 代表最符合。請注意,4 不表示這兩個字串完全相同。 範例:difference ([Sales target (query)].[Sales staff].[First name], [Sales (query)].[Retailers].[Contact first name]) 結果:0 範例:difference ([Sales target (query)].[Sales staff].[First name],[Sales target (query)].[Sales staff].[First name]) 結果:4 digits ( numeric_expression ) 傳回非浮點數的字串表示法。 double ( expression ) 傳回表示式的浮點數表示法。"Expression" 可以是數字或字串表示式。 event_mon_state ( string_expression ) 傳回特定狀態監視器的作業狀態。 float ( numeric_expression ) 傳回數字的浮點數表示法。 hex ( expression ) 傳回值的十六進位表示法。 hour ( time_expression ) 傳回 "time_expression" 中的小時值,此值為 0(午夜)到 23(晚上 11:00)的整數。"Time_expression" 可以是時間值或時間的字串表示法。 hour ( 01:22:45 ) 結果:傳回 1。 insert ( string_expression1, integer_expression1, integer_expression2, string_expression2 ) 傳回一個字串,這是在 "string_expression1" 的第 "integer_expression1" 個字元處開始刪除 "integer_expression2" 個字元,然後在該處開始將 "string_expression2" 插入到 "string_expression1" 之後產生的字串。字串中的第一個字元是在位置 1。 integer ( expression ) 傳回表示式的整數表示法。"Expression" 可以是數值或數字的字串表示法。 範例:integer ( 84.95 ) 結果:84 int ( expression ) 傳回表示式的整數表示法。"Expression" 可以是數值或數字的字串表示法。 範例:int ( 84.95 ) 結果:84 julian_day ( expression ) 傳回整數值,此值代表從西元前 4712 年 1 月 1 日(羅馬曆日期的開始日期)到 "expression" 中所指定的日期值之間的天數。"Expression" 可以是日期值或日期的字串表示法。 julian_day ( '2009-06-29' ) 結果:2455012.22130739595741034 lcase ( string_expression ) 傳回其所有大寫字元均已轉變成小寫字元的 "string_expression"。 lcase ( [Sales (query)].[Sales staff].[Last name] ) 結果:傳回姓氏(不使用大寫字母)。 left ( string_expression, integer_expression ) 傳回 "string_expression" 最左側的 "integer_expression" 個字元。 left ( [Sales (query)].[Sales staff].[Last name] , 3 ) 結果:傳回每個姓氏的前三個字元。 length ( expression ) 傳回運算元的長度(以位元組為單位)。異常狀況:雙位元組字串類型會傳回以字元為單位的長度。 length ( [Sales (query)].[Sales staff].[Record start date] ) 結果:傳回 4;日期一律傳回值 4。 locate ( string_expression1, string_expression2 [ , integer_expression ] ) 傳回 "string_expression1" 在 "string_expression2" 內第一次出現的起始位置。會在 "string_expression2" 的第 "integer_expression" 個字元位置開始搜尋。字串中的第一個字元是在位置 1。如果找不到 "string_expression1",則會傳回零。 locate ( A, [Sales (query)].[Sales staff].[Last name] , 2 ) 結果:傳回字元 A 在姓氏中的位置,從姓氏的第二個字元開始。 long_varchar ( string_expression ) 傳回一個長字串。 ltrim ( string_expression ) 傳回已移除前導空格的 "string_expression"。 ltrim ( [Sales (query)].[Sales staff].[Last name] ) 結果:傳回已移除所有前導空格的姓氏。 microsecond ( expression ) 傳回值的微秒(時間單位)部分。"Expression" 可以是時間戳記或時間戳記的字串表示法。 microsecond ( 01:45:34.056 ) 結果:傳回 056。 midnight_seconds ( expression ) 傳回範圍從 0 到 86400 的整數值,此值代表從午夜到引數中所指定的時間值之間的秒數。"Expression" 可以是時間值、時間戳記或時間的字串表示法。 midnight_seconds ( 01:45:34.056 ) 結果:傳回 6334。 minute ( time_expression ) 傳回 "time_expression" 中的分鐘值(0 到 59 的整數)。"Time_expression" 可以是時間值、時間戳記或時間的字串表示法。 minute ( 01:45:34.056 ) 結果:傳回 45。 month ( date_expression ) 傳回 "date_expression" 中的月份值(1 到 12 的整數)。 month ( 2005-11-01 ) 結果:傳回 11。 monthname ( date_expression ) 針對 "date_expression" 中代表月的部分,傳回包含月的資料來源特定的名稱字串(例如,若為英語資料來源,會傳回 January 到 December 或 Jan. 到 Dec.,若為德文資料來源,則會傳回 Januar 到 Dezember)。 monthname ( 2005-11-01 ) 結果:November quarter ( date_expression ) 傳回 "date_expression" 中的季度值,以 1 到 4 的數字來表示,其中 1 代表從 1 月 1 日到 3 月 31 日。 quarter ( 2005-11-01 ) 結果:傳回 4。 radians ( numeric_expression ) 傳回從 "numeric_expression" 度數轉換成的弧度數。 repeat ( string_expression, integer_expression ) 傳回將 "string_expression" 重複 "integer_expression" 次後組成的字串。 repeat ( XYZ, 3 ) 結果:傳回 XYZXYZXYZ。 replace ( string_expression1, string_expression2, string_expression3 ) 以 "string_expression3" 取代在 "string_expression1" 中出現的所有 "string_expression2"。 replace ( [Sales (query)].[Sales staff].[Position code], A, a ) 結果:傳回所有以「a」來取代「A」的職位代碼。 right ( string_expression, integer_expression ) 傳回 "string_expression" 最右側的 "integer_expression" 個字元。 right ( [Sales (query)].[Sales staff].[Position code], 3 ) 結果:傳回每個職位代碼最右側的 3 個字元。 round ( numeric_expression, integer_expression ) 傳回四捨五入到小數點右邊第 "integer_expression" 位數的 "numeric_expression"。如果 "integer_expression" 為負數,則會將 "numeric_expression" 四捨五入到小數點左邊第 "integer_expression" 絕對值位數的近似值。在替資料套用格式之前,請先將它四捨五入。 round ( 3.14159265, 3 ) 結果:傳回 3.142。 rtrim ( string_expression ) 傳回已移除尾端空格的 "string_expression"。 rtrim ( [Sales (query)].[Sales staff].[Last name] ) 結果:傳回已移除名字結尾處的所有空格的姓氏。 second ( time_expression ) 傳回 "time_expression" 中的秒數值(0 到 59 的整數)。 second ( 01:45:34.056 ) 結果:傳回 34。 sign ( numeric_expression ) 傳回 "numeric_expression" 的正負號指示符:如果 "numeric_expression" 是正數會傳回 +1,如果是零會傳回 0,如果是負數則會傳回 -1。 sign ( [Revenue] ) 結果:傳回 + 代表是正值,傳回 - 代表是負值。 smallint ( expression ) 傳回數字的小整數表示法。 soundex ( string_expression ) 傳回根據語音學將 "string_expression" 中的單字和名稱有系統地縮寫成只包含 4 個字元的字串碼。可用來判斷兩個字串聽起來是否一樣。例如,發音 ('SMITH') 與發音 ('SMYTH') 是否相同。 space ( integer_expression ) 傳回由 "integer_expression" 個空格組成的字串。 space ( 5 ) 結果:傳回 5 個空格。 substr ( string_expression , integer_expression1 [ , integer_expression2 ] ) 傳回 "string_expression" 的子字串,此子字串是從位置 "integer_expression1" 開始取 "integer_expression2" 個字元後得到的字串。"string_expression" 中的第一個字元是在位置 1。 substr ( [Sales (query)].[Sales staff].[Position code], 3 , 5 ) 結果:傳回從第 3 到第 7 個字元的職位代碼。 table_name ( string_expression1 [ , string_expression2 ] ) 根據 "string_expression1" 中的物件名稱和 "string_expression2" 中提供的綱目名稱,傳回不合格的表格或視圖名稱。這是用來解析別名。 table_schema ( string_expression1 [ , string_expression2 ] ) 根據 "string_expression1" 中的物件名稱和 "string_expression2" 中的綱目名稱,傳回兩部分表格或視圖名稱的綱目名稱部分。這是用來解析別名。 time ( expression ) 傳回值中的時間。 timestamp ( expression1 [ , expression2 ] ) 傳回值或值配對中的時間戳記。"Expression1" 必須代表日期值,"expression2" 必須代表時間值。 timestamp ( 11 November 2005 , 12:00:00.000000 ) 結果:傳回 2005-11-11-12:00:00.000000。 timestamp_iso ( expression ) 傳回已從 IBM 格式 (yyyy-mm-dd-hh.mm.ss.nnnnnn) 轉換為 ISO 格式 (yyyy-mm-dd hh:mm:ss.nnnnnn) 的日期時間。如果 "expression" 是時間,它會在日期元素中插入 CURRENT DATE 值,並在小數秒的時間元素中插入零。 timestamp_iso ( 11 November 2005 , 12:00:00.000000 ) 結果:傳回 2005-11-11 12:00:00.000000。 timestampdiff ( expression1, expression2 ) 根據兩個時間戳記之間的差異,傳回類型 "expression1" 的預計時間間隔數。"Expression2" 是將兩種時間戳記類型相減再將結果轉換為 CHAR 之後的結果。"expression1" 的有效值為:1 幾分之一秒;2 秒;4 分鐘;8 小時;16 日;32 週;64 月;128 季;256 年。 to_char ( timestamp_expression , format_string ) 傳回格式為 "format_string" 的時間戳記的字串表示法。 to_char ( numeric_expression , format_string ) 傳回格式為 "format_string" 的數值的字串表示法。 to_char ( character_expression ) 傳回 character_expression 的 varchar 字串表示法。 to_date ( expression1 , string_expression2 ) 將 "expression1" 轉換為依照 "string_expression2" 格式所指定的日期時間值。第一個引數 "expression1" 必須是類型 string 或 numeric。 to_date ( '2013-02-27 15:13:14' , 'YYYY-MM-DD HH24:MI:SS' ) 結果:傳回值為 '2013-02-27 15:13:14' 的日期時間。 translate ( string_expression1 [ , string_expression2, string_expression3 [ , string_expression4 ] ] ) 傳回 "string_expression1",其中 "string_expression3" 中的字元會轉換為 "string_expression2" 中相等的字元。"String_expression4" 是單一字元,當 "string_expression2" 比 "string_expression3" 短時,會使用 "string_expression4" 來填補 "string_expression2"。如果只存在 "string_expression1",則此函數會將 "string_expression1" 中的字元轉換為大寫字元。 translate ( 'abcdefg' ) 結果:傳回 ABCDEFG。 translate ( 'mnlop' , n, m , - ) 結果:傳回 n-nlop。 trunc ( numeric_expression1, numeric_expression2 ) 返回 "numeric_expression1" 截斷至小數點後 "numeric_expression2" 位的結果。如果 "numeric_expression2" 為負數,那麼會將 "numeric_expression1" 截斷至小數點前的 "numeric_expression2" 絕對值位。 範例:trunc ( 3.14159265, 3 ) 結果:3.141。 trunc ( datetime_expression [, format_string [, locale_name ] ] ) 傳回四捨五入到 format_string 指定的單位的 "datetime_expression"。如果未指定 format_string,datetime_expression 會四捨五入到最近日,即使 'DD' 已指定為 format_string。locale_name 是指定語言環境的字串常數,用來決定每週的第一天。如果未指定 locale_name,將會使用 CURRENT LOCALE LC_TIME 的值。 範例:trunc ( TIMESTAMP('2000-07-31 15:05:05.123456'), 'DD' ) 結果:2000-07-31 00:00:00.0 truncate ( numeric_expression1, numeric_expression2 ) 返回 "numeric_expression1" 截斷至小數點後 "numeric_expression2" 位結果。如果 "numeric_expression2" 為負數,那麼會將 "numeric_expression1" 截斷至小數點前的 "numeric_expression2" 絕對值位。 範例:truncate ( 3141.59265, -3 ) 結果:3。 truncate ( datetime_expression [, format_string [, locale_name ] ] ) 傳回四捨五入到 format_string 指定的單位的 "datetime_expression"。如果未指定 format_string,datetime_expression 會四捨五入到最近日,即使 'DD' 已指定為 format_string。locale_name 是指定語言環境的字串常數,用來決定每週的第一天。如果未指定 locale_name,將會使用 CURRENT LOCALE LC_TIME 的值。 範例:truncate ( TIMESTAMP('2000-07-31 15:05:05.123456'), 'DD' ) 結果:2000-07-31 00:00:00.0 ucase ( string_expression ) 傳回已將所有小寫字元轉變成大寫字元的 "string_expression"。 ucase ( XY896Zbced789 ) 結果:傳回 XY896ZBCED789。 value ( expression_list ) 傳回第一個非空值的引數(如果所有引數均為空值,則會傳回空值)。Value 函數需要兩個以上的引數。 value ( [單位成本], [單價], [單位售價] ) 結果:傳回第一個非空值。 varchar ( expression [ , numeric_expression ] ) 傳回 expression 的 VARCHAR 表示法,長度為 numeric_expression。 week ( date_expression ) 以範圍從 1 到 53 的整數值傳回 "date_expression" 是在該年度的第幾週。 week ( 11 November 2005 ) 結果:傳回 45。 year ( date_expression ) 傳回 "date_expression" 的年度值。 year ( 11 November 2005 ) 結果:傳回 2005。
Db2 強制轉型函數 cast_char ( expression [ , numeric_expression ] ) 傳回 "expression" 在強制轉型為字串之後得到的值的前 "numeric_expression" 個字元。若沒有指定第二個引數,便會傳回整個字串。 範例:cast_char ([資產 (查詢)].[資產].[出貨量]) 結果:53730 cast_date ( expression ) 傳回將 "expression" 強制轉型為日期之後的值。 cast_decimal ( expression [ , numeric_expression1, numeric_expression2 ] ) 傳回將 "expression" 強制轉型為小數之後的值,其中精準度為 "numeric_expression1",小數位數為 "numeric_expression2"。 cast_double ( expression ) 傳回將 "expression" 強制轉型為倍精準度之後的值。 cast_double_precision ( expression ) 傳回將 "expression" 強制轉型為倍精準度之後的值。 cast_float ( expression ) 傳回將 "expression" 強制轉型為浮點數之後的值。 cast_integer ( expression ) 傳回將 "expression" 強制轉型為整數之後的值。 cast_integer ( 84.95 ) 結果:84 cast_longvarchar ( string_expression ) 傳回將 "expression" 強制轉型為長字串 (longvarchar) 之後的值。 cast_smallint ( expression ) 傳回將 "expression" 強制轉型為小整數 (smallint) 之後的值。 cast_time ( string_expression ) 傳回將 "expression" 強制轉型為時間值之後的值。 cast_timestamp ( expression ) 傳回將 "expression" 強制轉型為日期時間之後的值。 cast_varchar ( expression, integer_expression ) 傳回將 "expression" 強制轉型為長度為 "integer_expression" 的 varchar 之後的值。
Db2 數學函數 log ( numeric_expression ) 傳回 "numeric_expression" 的自然對數。 log10 ( numeric_expression ) 傳回 "numeric_expression" 以 10 為基數的對數。 rand ( integer_expression ) 使用 "integer_expression" 作為種子值來產生亂數。
Db2 三角函數 acos ( numeric_expression ) 傳回 "numeric_expression" 的反餘弦值,以弧度表示。反餘弦值是其餘弦值為 "numeric_expression" 的角度。 asin ( numeric_expression ) 傳回 "numeric_expression" 的反正弦值,以弧度表示。反正弦值是其正弦值為 "numeric_expression" 的角度。 atan ( numeric_expression ) 傳回 "numeric_expression" 的反正切值,以弧度表示。反正切值是其正切值為 "numeric_expression" 的角度。 atan2 ( numeric_expression1 , numeric_expression2 ) 傳回分別由 "numeric_expression1" 和 "numeric_expression2" 指定的 x 座標和 y 座標的反正切值,以弧度表示。反正切值是其正切值為 "numeric_expression2" / "numeric_expression1" 的角度。 atanh ( numeric_expression ) 傳回 "numeric_expression" 的雙曲線反正切值,其中 "numeric_expression" 是以弧度表示的角度。 cos ( numeric_expression ) 傳回 "numeric_expression" 的餘弦值,其中 "numeric_expression" 是以弧度表示的角度。 cosh ( numeric_expression ) 傳回 "numeric_expression" 的雙曲線餘弦值,其中 "numeric_expression" 是以弧度表示的角度。 cot ( numeric_expression ) 傳回 "numeric_expression" 的餘切值,其中 "numeric_expression" 是以弧度表示的角度。 degrees ( numeric_expression ) 傳回將 "numeric_expression" 弧度轉換為度數之後的值。 sin ( numeric_expression ) 傳回 "numeric_expression" 的正弦值,其中 "numeric_expression" 是以弧度表示的角度。 sinh ( numeric_expression ) 傳回 "numeric_expression" 的雙曲線正弦值,其中 "numeric_expression" 是以弧度表示的角度。 tan ( numeric_expression ) 傳回 "numeric_expression" 的正切值,其中 "numeric_expression" 是以弧度表示的角度。 tanh ( numeric_expression ) 傳回 "numeric_expression" 的雙曲線正切值,其中 "numeric_expression" 是以弧度表示的角度。