DB2
DB2 共通関数 DB2 add_months ( <日付>|<日時> , <整数> ) <整数> 月数を <日付> または <日時> に加算した結果を、日付で返します。<日付> および <日時> には、日付値、日時値、あるいは文字列による日付または日時の表現を使用できます。 add_months ( <現在の日付> , 3 ) 結果: 現在の日付より 3 カ月後の日付を返します。 ascii ( <文字列> ) 引数の一番左側の文字の ASCII コード値を整数として返します。 ascii ( a ) 結果:「a」の ASCII コード値である 65 を返します。 chr ( <整数> ) <整数> で指定された ASCII コード値を持つ文字を返します。"<整数>" には 0~255 の値を指定します。 chr ( 65 ) 結果:ASCII コード値 65 の文字である a を返します。 char ( expression )   代替構文: char ( string_expression  , integer_expression ) 長さが「integer_expression」である固定長文字列の表記「string_expression」を返します。   代替構文 2: char ( decimal_expression  , character_expression ) 小数点記号「character_expression」を使用する文字列の表記「decimal_expression」を返します。 日時値または小数の文字列による表現を返します。 ceiling ( <数値> ) 「数値」以上で最小の整数を返します。 ceiling ( 0.75 ) 結果:0.8 を返します。 coalesce coalesce ( <式リスト> ) Null でない最初の引数を返します。引数がすべて Null である場合は、Null が返されます。Coalesce 関数には 2 つ以上の引数が渡されます。 coalesce ( [単価], [単位特価] ) 結果: 単価を返し、単価が Null の場合は単位特価を返します。 concat ( <文字列 1>, <文字列 2> ) 「文字列 1」と「文字列 2」を連結した文字列を返します。 concat ( [販売目標 (クエリー)].[販売員].[名], [販売目標 (クエリー)].[販売員].[姓] ) 結果: 姓名を返します (例:Bob Smith)。 date ( <式> ) 単一の入力値から日付を返します。「式」には、文字列または整数による日付の表現を使用できます。 date ( '1998-01-08' ) 結果:1998 年 1 月 8 日を返します。 day ( <日付> ) <日付> から日の部分 (1~31) を返します。「日付」には、日付値、または文字列による日付の表現を使用できます。 day ( '1998-01-08' ) 結果: 8 を返します。 dayname ( <日付> ) <日付> の日の部分に対応する、データ・ソース固有の曜日名 (例えば、英語を使用するデータ・ソースでは 'Sunday'~'Saturday' や 'Sun.'~'Sat.'、ドイツ語を使用するデータ・ソースでは 'Sonntag'~'Samstag') が入った文字列を返します。「日付」には、日付値、または文字列による日付の表現を使用できます。 dayname ( '1998-01-08' ) 結果: 木曜日を返します。 dayofweek ( <日付> ) <日付> の曜日を 1~7 の範囲の整数で返します。1 は日曜日になります。「日付」には、日付値、または文字列による日付の表現を使用できます。 dayofweek ( '1998-01-08' ) 結果: 5 を返します。 dayofweek_iso ( <日付> ) <日付> の曜日を 1~7 の範囲の整数で返します。1 は月曜日になります。「日付」には、日付値、または文字列による日付の表現を使用できます。 dayofweek_iso ( '1998-01-08' ) 結果: 4 を返します。 dayofyear ( <日付> ) <日付> の元旦からの日数を 1~366 の範囲の整数で返します。「日付」には、日付値、または文字列による日付の表現を使用できます。 dayofyear ( current_date ) 結果: 現在の日付の元旦からの日数を返します。例えば、1 月 28 日の場合は、28 を返します。 days ( <式> ) 日付を整数に変換して返します。「式」には、日付値、または文字列による日付の表現を使用できます。 dec ( string-expression [ , precision-integer [ , scale-integer [ , decimal-character ] ] ] ) 「precision-integer」と「scale-integer」を使用して、「string-expression」の 10 進表記を返します。「decimal-character」を使用して、「string-expression」の小数桁数を区切るために使用する 1 バイト文字定数を指定できます。「string-expression」は、SQL 整数か 10 進定数の形式でなければなりません。   代替構文: dec ( numeric-expression [ , precision-integer [ , scale-integer ] ] ) 「precision-integer」と「scale-integer」を使用して、「numeric-expression」の 10 進表記を返します。   代替構文 2: dec ( datetime-expression [ , precision-integer [ , scale-integer ] ] ) 「precision-integer」と「scale-integer」を使用して、「datetime-expression」の 10 進表記を返します。 decimal ( string-expression [ , precision-integer [ , scale-integer [ , decimal-character ] ] ] ) 「precision-integer」と「scale-integer」を使用して、「string-expression」の 10 進表記を返します。「decimal-character」を使用して、「string-expression」の小数桁数を区切るために使用する 1 バイト文字定数を指定できます。「string-expression」は、SQL 整数か 10 進定数の形式でなければなりません。   代替構文: decimal ( numeric-expression [ , precision-integer [ , scale-integer ] ] ) 「precision-integer」と「scale-integer」を使用して、「numeric-expression」の 10 進表記を返します。   代替構文 2: decimal ( datetime-expression [ , precision-integer [ , scale-integer ] ] ) 「precision-integer」と「scale-integer」を使用して、「datetime-expression」の 10 進表記を返します。 difference ( <文字列 1> , <文字列 2> ) <文字列 1> と <文字列 2> に対し、データ・ソースに固有の soundex 関数から返された値の差を示す整数値を返します。返される値の範囲は 0~4 になり、'4' は一致度が最も高いことを示します。ただし、'4' は文字列が完全に一致することを示すものではありません。 例: difference ([販売目標 (クエリー)].[販売員].[名],[販売 (クエリー)].[小売業者].[連絡先名]) 結果: 0 例: difference ([販売目標 (クエリー)].[販売員].[名],[販売目標 (クエリー)].[販売員].[名]) 結果: 4 digits ( <数値> ) 非浮動小数点の数値を文字列の表現として返します。 double ( <式> ) <式> の浮動小数点による表現を返します。「式」には、数値か文字列を使用できます。 event_mon_state ( <文字列> ) 特定のステータス・モニターの稼動状況を返します。 float ( <数値> ) 数値の浮動小数点による表現を返します。 hex ( <式> ) 値の 16 進法による表現を返します。 hour ( <時刻> ) <時刻> から時間の単位の部分を、0 (午前 0 時) ~ 23 (午後 11 時) の整数として返します。「時刻」には、時刻値、または文字列による時刻の表現を使用できます。 hour ( 01:22:45 ) 結果: 1 を返します。 insert ( <文字列 1>, <整数 1>, <整数 2>, <文字列 2> ) <文字列 1> の <整数 1> を開始位置として <整数 2> 文字を削除し、その位置に <文字列 2> を挿入した文字列を返します。文字列の先頭文字を、位置 1 とカウントします。 integer ( <式> ) 式を整数に変換して返します。「式」には、数値、または文字列による数の表現を使用できます。 例: integer ( 84.95 ) 結果: 84 int ( <式> ) 式を整数に変換して返します。「式」には、数値、または文字列による数の表現を使用できます。 例: int ( 84.95 ) 結果: 84 julian_day ( <式> ) 紀元前 4712 年 1 月 1 日 (ユリウス日の最初の日) から <式> で指定された日付値までの日数を表す整数値を返します。「式」には、日付値、または文字列による日付の表現を使用できます。 julian_day ( '2009-06-29' ) 結果: 2455012.22130739595741034 lcase ( <文字列> ) 「文字列」のすべての大文字を小文字にして返します。 lcase ( [販売 (クエリー)].[販売員].[姓] ) 結果: 大文字を使用せずに表記した姓を返します。 left ( <文字列>, <整数> ) 「文字列」の文字を左側から「整数」文字返します。 left ( [販売 (クエリー)].[販売員].[姓] , 3 ) 結果: 各姓の最初の 3 文字を返します。 length ( <式> ) オペランドの長さをバイト数で返します。ただし、全角文字の場合は文字数が返されます。 length ( [販売 (クエリー)].[販売員].[レコードの開始日] ) 結果:4 を返します。日付は常に値 4 を返します。 locate ( <文字列 1>, <文字列 2> [ , <整数> ] ) <文字列 2> における最初の <文字列 1> の開始位置を返します。検索は <文字列 2> の <整数> の位置から開始されます。文字列の最初の文字の位置が 1 になります。<文字列 1> が見つからない場合は、0 が返されます。 locate ( A, [販売 (クエリー)].[販売員].[姓] , 2 ) 結果: 姓の 2 番目の文字から数えた、姓に文字 A が出てくる位置を返します。 long_varchar ( <文字列> ) 長い文字列を返します。 ltrim ( <文字列> ) 先頭に付いたスペースをすべて削除して「文字列」を返します。 ltrim ( [販売 (クエリー)].[販売員].[姓] ) 結果: 先頭に付いたスペースをすべて削除して姓を返します。 microsecond ( <式> ) 値のマイクロ秒単位の部分を返します。「式」には、タイム・スタンプ、または文字列によるタイム・スタンプの表現を使用できます。 microsecond ( 01:45:34.056 ) 結果:056 を返します。 midnight_seconds ( <式> ) 午前 0 時と引数で指定された時間値の間の秒数を表す、0~86400 の範囲の整数値を返します。「式」は、時刻値、タイム・スタンプ、または文字列による時刻の表現を使用できます。 midnight_seconds ( 01:45:34.056 ) 結果: 6334 を返します。 minute ( <時刻> ) <時刻> から分の単位の部分を、0~59 の整数で返します。「時刻」には、時刻値、タイム・スタンプ、または文字列による時刻の表現を使用できます。 minute ( 01:45:34.056 ) 結果: 45 を返します。 month ( <日付> ) 「日付」から月の単位の部分を、1~12 の整数で返します。 month ( 2005-11-01 ) 結果: 11 を返します。 monthname ( <日付> ) 「日付」の月の部分に対応する、データ・ソース固有の月名 (例えば、英語のデータ・ソースでは 'January'~'December' や 'Jan.'~'Dec.'、ドイツ語のデータ・ソースでは 'Januar'~'Dezember') が入った文字列を返します。 monthname ( 2005-11-01 ) 結果:11 月 quarter ( <日付> ) 「日付」の四半期を 1~4 の範囲の整数で返します。'1' は 1 月 1 日から 3 月 31 日までになります。 quarter ( 2005-11-01 ) 結果: 4 を返します。 radians ( <数値> ) 度による「数値」をラジアンに変換して返します。 repeat ( <文字列>, <整数> ) 「文字列」を「整数」回繰り返した文字列を返します。 repeat ( XYZ, 3 ) 結果:XYZXYZXYZ を返します。 replace ( <文字列 1>, <文字列 2>, <文字列 3> ) 「文字列 1」に含まれるすべての「文字列 2」を「文字列 3」に置き換えます。 replace ( [販売 (クエリー)].[販売員].[職位コード], A, a ) 結果:「A」をすべて「a」に置き換えて職位コードを返します。 right ( <文字列>, <整数> ) 「文字列」の文字を右側から「整数」文字返します。 right ( [販売 (クエリー)].[販売員].[職位コード], 3 ) 結果: 各職位コードの文字を右側から 3 文字返します。 round ( <数値>, <整数> ) <数値> を小数点から右に <整数> 桁の位置で四捨五入した値を返します。<整数> が負の値の場合は、小数点から左に向かって <整数> の絶対値の桁数で四捨五入を行います。四捨五入は、データの書式設定が適用される前に行われます。 round ( 3.14159265, 3 ) 結果: 3.142 を返します。 rtrim ( <文字列> ) 末尾に付いたスペースをすべて削除して「文字列」を返します。 rtrim ( [販売 (クエリー)].[販売員].[姓] ) 結果: 末尾のスペースをすべて削除して姓を返します。 second ( <時刻> ) 「時刻」から秒の単位の部分を、0~59 の整数で返します。 second ( 01:45:34.056 ) 結果: 34 を返します。 sign ( <数値> ) 「数値」の符号を示す値を返します。「数値」が正の値の場合は +1、ゼロの場合は 0、負の値の場合は -1 を返します。 sign ( [収益] ) 結果: 正の値の場合は +、負の値の場合は - を返します。 smallint ( <式> ) 数を small integer 型で返します。 soundex ( <文字列> ) <文字列> の単語や名前を、読みに従って体系的に略号化して得られた 4 字の文字列を返します。2 つの文字列の発音が同じかどうかを判断するのに使用できます。例えば、'SMITH' と 'SMYTH' の発音を比較できます。 space ( <整数> ) 「整数」個のスペースで構成される文字列を返します。 space ( 5 ) 結果:5 個のスペースを返します。 substr ( <文字列> , <整数 1> [ , <整数 2> ] ) <整数 1> の位置で始まり、文字数が <整数 2> の、<文字列> の部分文字列を返します。「文字列」の最初の文字の位置が 1 になります。 substr ( [販売 (クエリー)].[販売員].[職位コード], 3 , 5 ) 結果:"職位コード"の 3 文字目から 7 文字目までを返します。 table_name ( <文字列 1> [ , <文字列 2> ] ) <文字列 1> のオブジェクト名と、<文字列 2> のスキーマ名に基づいて、テーブルやビューの非修飾名を返します。別名を解決するために使用されます。 table_schema ( <文字列 1> [ , <文字列 2> ] ) <文字列 1> のオブジェクト名と、<文字列 2> のスキーマ名に基づいて、2 つの部分で構成されるテーブル名やビュー名のスキーマ名の部分を返します。別名を解決するために使用されます。 time ( <式> ) 値から時間を返します。 timestamp ( <式 1> [ , <式 2> ] ) 1 つまたは 2 つの値からタイム・スタンプを返します。「式 1」で日付値を、「式 2」で時刻値を指定します。 timestamp ( 11 November 2005 , 12:00:00.000000 ) 結果:2005-11-11-12:00:00.000000 を返します。 timestamp_iso ( <式> ) IBM 形式 (yyyy-mm-dd-hh.mm.ss.nnnnnn) の日時を ISO 形式 (yyyy-mm-dd hh:mm:ss.nnnnnn) に変換して返します。「式」が時刻の場合は、現在日付 (CURRENT DATE) の値が日付の部分に、時刻の端数の部分にはゼロが挿入されます。 timestamp_iso ( 11 November 2005 , 12:00:00.000000 ) 結果:2005-11-11 12:00:00.000000 を返します。 timestampdiff ( <式 1>, <式 2> ) 2 つのタイム・スタンプの差に基づいて、タイプ <式 1> の間隔の推定値を返します。<式 2> は、2 つのタイプのタイム・スタンプの差を CHAR 型に変換した結果です。「式 1」の有効な値としては、1 (秒未満)、2 (秒)、4 (分)、8 (時間)、16 (日)、32 (週)、64 (月)、128 (四半期)、256 (年) があります。 to_char ( タイム・スタンプ , 書式制御ストリング ) タイム・スタンプの文字列による表現を「書式制御ストリング」の形式で返します。 to_char ( 数値 , 書式制御ストリング ) 数値の文字列による表現を「書式制御ストリング」の形式で返します。 to_char ( 文字式 ) 文字式の varchar 文字列による表現を返します。 to_date ( <式 1> , <文字列 2> ) <式 1> を <文字列 2> で指定された形式の日時値に変換します。最初の引数 <式 1> は string 型または numeric 型にすることができます。 to_date ( '2013-02-27 15:13:14' , 'YYYY-MM-DD HH24:MI:SS' ) 結果: 値 '2013-02-27 15:13:14' の日時を返します。 translate ( <文字列 1> [ , <文字列 2>, <文字列 3> [ , <文字列 4> ] ] ) <文字列 1> を、その中に出てくる <文字列 3> の文字を <文字列 2> の対応する文字に変換して返します。<文字列 4> には、<文字列 2> が <文字列 3> より短い場合に使用する埋め込み文字を 1 つ指定します。「文字列 1」しか指定しない場合、「文字列 1」が大文字に変換されます。 translate ( 'abcdefg' ) 結果:ABCDEFG を返します。 translate ( 'mnlop' , n, m , - ) 結果:n-nlop を返します。 trunc (数値 1, 数値 2) <数値 1> を小数点の右側 <数値 2> 桁目で切り捨てて返します。「数値 2」が負の値の場合は、小数点から左に向かって「数値 2」の絶対値の桁数で切り捨てを行います。 例: trunc ( 3.14159265, 3 ) 結果: 3.141. trunc ( 日時式 [, 書式制御ストリング [, ロケール名 ] ] ) 書式制御ストリングで指定された単位に丸めた「日時式」を返します。書式制御ストリングが指定されていない場合、日付は書式制御ストリングで「DD」が指定された場合のように直近の日に丸められます。ロケール名は、週の初日を判別する際に使用するロケールを指定するストリング定数です。ロケール名が指定されていない場合、CURRENT LOCALE LC_TIME の値が使用されます。 例: trunc ( TIMESTAMP('2000-07-31 15:05:05.123456'), 'DD' ) 結果: 2000-07-31 00:00:00.0 truncate ( 数値 1, 数値 2 ) <数値 1> を小数点の右側 <数値 2> 桁目で切り捨てて返します。「数値 2」が負の値の場合は、小数点から左に向かって「数値 2」の絶対値の桁数で切り捨てを行います。 例: truncate ( 3141.59265, -3 ) 結果: 3。 truncate ( 日時式 [, 書式制御ストリング [, ロケール名 ] ] ) 書式制御ストリングで指定された単位に丸めた「日時式」を返します。書式制御ストリングが指定されていない場合、日付は書式制御ストリングで「DD」が指定された場合のように直近の日に丸められます。ロケール名は、週の初日を判別する際に使用するロケールを指定するストリング定数です。ロケール名が指定されていない場合、CURRENT LOCALE LC_TIME の値が使用されます。 例: truncate ( TIMESTAMP('2000-07-31 15:05:05.123456'), 'DD' ) 結果: 2000-07-31 00:00:00.0 ucase ( <文字列> ) 「文字列」のすべての小文字を大文字にして返します。 ucase ( XY896Zbced789 ) 結果:XY896ZBCED789 を返します。 value ( <式リスト> ) Null でない最初の引数を返します。引数がすべて Null である場合は、Null が返されます。Value 関数には 2 つ以上の引数が渡されます。 value ( [単位原価], [単価], [単位特価] ) 結果:Null でない最初の値を返します。 varchar ( <式> [ , <数値> ] ) 「式」を VARCHAR 型で「数値」の長さだけ返します。 week ( <日付> ) 「日付」の年始からの週数を 1~53 の範囲の整数で返します。 week ( 11 November 2005 ) 結果: 45 を返します。 year ( <日付> ) 「日付」から年の部分を返します。 year ( 11 November 2005 ) 結果: 2005 を返します。
DB2 データ・タイプ変換関数 cast_char ( <式> [ , <数値> ] ) <式> の値の最初の <数値> 文字を string 型に変換して返します。2 番目の引数が指定されない場合、文字列全体が返されます。 例: cast_char ([在庫 (クエリー)].[在庫].[出荷数量]) 結果: 53730 cast_date ( <式> ) "<式>" の値を date 型に変換して返します。 cast_decimal ( <式> [ , <数値 1>, <数値 2> ] ) "<式>" の値を、精度が "<数値 1>"、小数部桁数が "<数値 2>" の decimal 型に変換して返します。 cast_double ( <式> ) "<式>" の値を double 型に変換して返します。 cast_double_precision ( <式> ) "<式>" の値を double 型に変換して返します。 cast_float ( <式> ) 「式」の値を float 型に変換して返します。 cast_integer ( <式> ) "<式>" の値を integer 型に変換して返します。 cast_integer ( 84.95 ) 結果: 84 cast_longvarchar ( <文字列> ) <文字列> の値を longvarchar 型に変換して返します。 cast_smallint ( <式> ) "<式>" の値を smallint 型に変換して返します。 cast_time ( <文字列> ) "<文字列>" の値を time 型に変換して返します。 cast_timestamp ( <式> ) "<式>" の値を datetime 型に変換して返します。 cast_varchar ( <式>, <整数> ) "<式>" の値を varchar 型に変換して、"<整数>" の長さだけ返します。
DB2 数学関数 log ( <数値> ) 「数値」の自然対数を返します。 log10 ( <数値> ) 「数値」の 10 を底とした対数を返します。 rand ( <整数> ) 「整数」をシード値として使用して、ランダムな数を生成します。
DB2 三角関数 acos ( <数値> ) <数値> の逆余弦をラジアンで返します。逆余弦とは、余弦が「数値」になる角度です。 asin ( <数値> ) <数値> の逆正弦をラジアンで返します。逆正弦は、正弦が「数値」になる角度です。 atan ( <数値> ) <数値> の逆正接をラジアンで返します。逆正接は、正接が「数値」になる角度です。 atan2 ( <数値 1> , <数値 2> ) <数値 1> と <数値 2> でそれぞれ指定された X 座標と Y 座標の逆正接をラジアンで返します。逆正接は、正接が「数値 2」/「数値 1」になる角度です。 atanh ( <数値> ) 「数値」の逆双曲正接を返します。「数値」はラジアンによる角度です。 cos ( <数値> ) 「数値」の余弦を返します。「数値」はラジアンによる角度です。 cosh ( <数値> ) 「数値」の双曲余弦を返します。「数値」はラジアンによる角度です。 cot ( <数値> ) 「数値」の余接を返します。「数値」はラジアンによる角度です。 degrees ( <数値> ) ラジアンによる「数値」を度に変換して返します。 sin ( <数値> ) 「数値」の正弦を返します。「数値」はラジアンによる角度です。 sinh ( <数値> ) 「数値」の双曲正弦を返します。「数値」はラジアンによる角度です。 tan ( <数値> ) 「数値」の正接を返します。「数値」はラジアンによる角度です。 tanh ( <数値> ) 「数値」の双曲正接を返します。「数値」はラジアンによる角度です。