スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
![[目次]](FIGURE/CONTENT.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
引数の逆余弦である角度を,0〜πの範囲(ラジアン単位)で返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数値が定義されていない値を引数に指定すると,定義域エラー(domain error occurs)になります。
引数1で指定した既定の文字列表現('YYYY-MM-DD hh:mm:ss')の時刻印に,引数2で指定した10進数表現(±YYYYMMDDhhmmss.)の日時間隔を加算した,時刻印の既定の文字列表現を返します。
〔MASTER.〕ADD_INTERVAL(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- 文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2の値式に指定できるものを次に示します。
- 10進数定数又は整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型は文字データ型(CHAR又はVARCHAR)にしてください。また,値の長さは19バイト以下にしてください。
- 引数1のデータ型が文字データ型(CHAR,VARCHAR)の場合,そのデータ型の文字集合はUTF16以外にしてください。引数1に,文字集合がUTF16の文字データ型を指定する場合,CAST指定を用いて既定文字集合の文字データ型に変換してください。
- 引数2のデータ型はDECIMAL,INTEGER,又はSMALLINTにしてください。また,14けた以下の整数値を指定してください。なお,小数点以下を指定しても無視されます。
- 結果のデータ型はCHAR(19)になります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 関数の結果の文字集合は,引数1の文字集合となります。
- 引数1の値には,有効な時刻印の既定の文字列表現('YYYY-MM-DD hh:mm:ss')を指定してください。時刻印の既定の文字列表現には,小数秒を指定しないでください。
- 引数2の値式には,日時間隔の10進数表現(±YYYYMMDDhhmmss.)を指定してください。
- YYYY:年数
- MM:月数
- DD:日数
- hh:時数
- mm:分数
- ss:秒数
引数2の値が正の場合,引数1の時刻印への日時間隔(YYYYMMDDhhmmss.)の加算になります。引数2の値が負の場合,引数1の時刻印への日時間隔(YYYYMMDDhhmmss.)の減算になります。
- 日時間隔の加減算は,年,月,日,時,分,秒の順に演算します。年又は月の演算結果が存在しない日付(小の月の31日,及びうるう年以外の年の2月29日)になった場合の結果は,その月の最終日に修正されます。
なお,任意の月の最終日から数か月後が,必ずその月の最終日になるわけではありません。また,ある日付に任意の月数を加算した後,その結果の日付から同じ月数を引いても,必ず元の日付になるとは限らないので注意してください。
同じ月数を引いても,必ず元の日付になるとは限らないので注意してください。
- 時刻印の既定の文字列表現でうるう秒を指定した場合,演算結果は次のようになります。
- 分以上の演算で,結果の秒が60秒以上になった場合は,59秒に修正されます。
- 秒の演算では,60秒を1分,61秒を1分1秒として演算します。
- 関数の結果には,うるう秒を含みません。
- 関数の結果が,0001年01月01日00時00分00秒〜9999年12月31日23時59分59秒の範囲でない場合,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の演算結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
- 関数の結果は,時刻印の既定の文字列表現になります。
ADD_INTERVALの使用例を次に示します。
ADD_INTERVAL('1999-12-31 23:59:59',10000000001.)
==> '2001-01-01 00:00:00'
ADD_INTERVAL('2001-01-01 00:00:00',-10000000001.)
==> '1999-12-31 23:59:59'
ADD_INTERVAL('1956-06-07 03:15:30',400313115450.)
==> '1996-09-20 15:10:20'
ADD_INTERVAL('1998-12-31 13:59:59',10200030405.)
==> '2000-02-29 17:04:04'
ADD_INTERVAL('2000-02-29 17:04:04',-10200030405.)
==> '1998-12-28 13:59:59'
ADD_INTERVAL('2000-03-05 17:04:60',100.)
==> '2000-03-05 17:05:59'
システム共通定義pdsysに,set pd_leap_second = Yを指定している場合です。
ADD_INTERVAL('2000-03-05 17:04:60',-60.)
==> '2000-03-05 17:04:00'
システム共通定義pdsysに,set pd_leap_second = Yを指定している場合です。
ADD_INTERVAL(CAST(CURRENT_TIMESTAMP AS CHAR(19)),-100000000.)
==> '2008-09-29 10:17:48'
CURRENT TIMESTAMPが,2008年10月29日10時17分48秒の場合です。
引数で指定した文字列の,最初の文字のASCIIコードを整数値で返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は文字データ型(CHAR又はVARCHAR)にしてください。
- 引数のデータ型の文字集合は既定文字集合にしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 引数の値の長さが0バイトの場合,結果はナル値になります。
ASCIIの使用例を次に示します。
ASCII('ABC') ==> 65
CHR(ASCII('ABC')) ==> 'A'
引数の逆正弦である角度を,−π/2〜π/2の範囲(ラジアン単位)で返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数,又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数値が定義されていない値を引数に指定すると,定義域エラー(domain error occurs)になります。
引数の逆正接である角度を,−π/2〜π/2の範囲(ラジアン単位)で返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
x/yの逆正接である角度を,−π〜πの範囲(ラジアン単位)で返します。なお,xは引数1とし,yは引数2とします。
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
引数の値以上の,最小の整数値を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型を次の表に示します。
表2-48 システム定義スカラ関数CEILの結果のデータ型
引数のデータ型 |
結果のデータ型 |
SMALLINT |
INTEGER |
INTEGER |
INTEGER |
DECIMAL(p,s) |
DECIMAL(p,s) |
SMALLFLT |
FLOAT |
FLOAT |
FLOAT |
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
引数で指定された日付の世紀を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型はDATEにしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
CENTURYの使用例を次に示します。
CENTURY(DATE('1900-12-31')) ==> 19
CENTURY(DATE('1901-01-01')) ==> 20
CENTURY(DATE('1999-12-31')) ==> 20
CENTURY(DATE('2000-12-31')) ==> 20
CENTURY(DATE('2001-01-01')) ==> 21
引数で指定した整数値が示す,ASCIIコードの文字を返します。引数の値が0〜255の範囲外の値ならば,ナル値を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は,INTEGER又はSMALLINTにしてください。
- 結果のデータ型はCHAR(1)になります。
- 結果の文字集合は既定の文字集合になります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
CHRの使用例を次に示します。
CHR(65) ==> 'A'
ASCII(CHR(65)) ==> 65
ラジアンで角度を指定した,引数の余弦(三角関数COS)を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
引数の双曲線余弦を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
引数1で指定したDATE型の日付と,引数2で指定したTIME型の時刻とを,時刻印の既定の文字列表現('YYYY-MM-DD hh:mm:ss')に変換して返します。
〔MASTER.〕DATE_TIME(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2の値式に指定できるものを次に示します。
- CURRENT_TIME
- 列指定
- SQL変数又はSQLパラメタ
- 時刻演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型はDATEにしてください。引数2のデータ型はTIMEにしてください。
- 結果のデータ型はCHAR(19)になります。
- 結果の文字集合は,既定の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- DATE_TIME(日時,時刻)の結果である時刻印の既定の文字列表現は,日付の既定の文字列表現,1文字の空白,及び時刻の既定の文字列表現を連結した値になります。
CHAR(日付) || ' ' || CHAR(時刻)
DATE_TIMEの使用例を次に示します。
DATE_TIME(DATE('1999-12-31'), TIME('23:59:59'))
==> '1999-12-31 23:59:59'
DATE_TIME(CURRENT_DATE, CURRENT_TIME)
==> '1999-07-27 11:05:20'
引数で指定した日付の,曜日を示す文字列('Sunday','Monday'などの英語の文字列)を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型はDATEにしてください。
- 結果のデータ型はVARCHAR(18)になります。
- 結果の文字集合は,既定の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
DAYNAMEの使用例を次に示します。
DAYNAME(DATE('1999-06-06')) ==> 'Sunday'
DAYNAME(DATE('1999-06-07')) ==> 'Monday'
DAYNAME(DATE('1999-06-08')) ==> 'Tuesday'
DAYNAME(DATE('1999-06-09')) ==> 'Wednesday'
DAYNAME(DATE('1999-06-10')) ==> 'Thursday'
DAYNAME(DATE('1999-06-11')) ==> 'Friday'
DAYNAME(DATE('1999-06-12')) ==> 'Saturday'
引数で指定した日付の,曜日を示す1〜7の整数値(その週の第何日目かを示す値)を返します。なお,週の最初の日は日曜日とし,1は日曜日を示します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型はDATEにしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
DAYOFWEEKの使用例を次に示します。
DAYOFWEEK(DATE('1999-06-06')) ==> 1
DAYOFWEEK(DATE('1999-06-07')) ==> 2
DAYOFWEEK(DATE('1999-06-08')) ==> 3
DAYOFWEEK(DATE('1999-06-11')) ==> 6
DAYOFWEEK(DATE('1999-06-12')) ==> 7
なお, '1999-06-06' は,日曜日です。
引数で指定した日付が,その年の第何日目かを示す1〜366の整数値を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型はDATEにしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
DAYOFYEARの使用例を次に示します。
DAYOFYEAR(DATE('1999-01-01')) ==> 1
DAYOFYEAR(DATE('1999-02-28')) ==> 59
DAYOFYEAR(DATE('1999-06-07')) ==> 158
DAYOFYEAR(DATE('1999-12-31')) ==> 365
DAYOFYEAR(DATE('2000-12-31')) ==> 366
引数で指定した角度を,ラジアンから度数に変換します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
自然対数の底の累乗を求めます。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
引数の値以下の,最大の整数を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型を次の表に示します。
表2-49 システム定義スカラ関数FLOORの結果のデータ型
引数のデータ型 |
結果のデータ型 |
SMALLINT |
INTEGER |
INTEGER |
INTEGER |
DECIMAL(p, s) |
DECIMAL(p, s) |
SMALLFLT |
FLOAT |
FLOAT |
FLOAT |
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
すべての引数中の最大値を返します。
〔MASTER.〕GREATEST(引数,引数〔,引数〕)
|
- 引数に指定できるものを次に示します。
- 引数の数は最大3個です。
- 値式に指定できるものを次に示します。
- 定数
- USER,CURRENT_DATE,又はCURRENT_TIME
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算,日付演算,時刻演算,又は連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 指定可能な引数のデータ型の組合せを次の表に示します。
表2-50 システム定義スカラ関数GREATEST(引数3を省略する場合)の引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
指定可否 |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
指定可 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
DATE |
DATE |
指定可 |
TIME |
TIME |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
表2-51 システム定義スカラ関数GREATEST(引数3を指定する場合)の引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
引数3のデータ型 |
指定可否 |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
指定可 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
DATE |
DATE |
DATE |
指定可 |
TIME |
TIME |
TIME |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- 引数に指定した値式のデータ型が文字データ型の場合,値式の文字集合はすべて同じにしてください。
- 結果のデータ型を次の表に示します。
表2-52 システム定義スカラ関数GREATESTの結果のデータ型
引数のデータ型 |
結果のデータ型 |
INTEGER又はSMALLINT |
INTEGER |
DECIMAL〔,INTEGER又はSMALLINT〕 |
DECIMAL※1 |
FLOAT,SMALLFLT〔,DECIMAL,INTEGER,又はSMALLINT〕 |
FLOAT |
CHAR又はVARCHAR |
VARCHAR※2 |
MCHAR又はMVARCHAR |
MVARCHAR※2 |
NCHAR又はNVARCHAR |
NVARCHAR※2 |
DATE |
DATE |
TIME |
TIME |
- 注※1
- 精度と位取りを次に示します。pi及びsiを,それぞれi番目の引数の精度及び位取りとします。
- 精度=max(p1-s1, p2-s2,…)+max(s1, s2,…)
- 位取り=max(s1, s2,…)
- 結果の精度が38を超えた場合はエラーになります。
- また,INTEGERはDECIMAL(10,0),SMALLINTはDECIMAL(5,0)として扱われます。
- 注※2
- 最大長を次に示します。niをi番目の引数の最大長(固定長のデータ型の場合は定義長)とします。
- 最大長=max(n1, n2,…)
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式のどれかがナル値であれば,結果もナル値になります。
- 結果のデータ型が文字データ型となる場合,結果の文字集合は引数に指定した値式の文字集合となります。
引数2で指定した月,及び引数3で指定した日を各年度の開始月日として,引数1で指定された日付が上期か下期かを1〜2の整数で返します。
〔MASTER.〕HALF(引数1〔,引数2〔,引数3〕〕)
|
- 引数に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2及び引数3の値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型はDATEにしてください。引数2及び引数3のデータ型は,INTEGER又はSMALLINTにしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式のどれかがナル値であれば,結果もナル値になります。
- 引数2を省略すると,1を仮定します。引数2に指定できる値の範囲は,1〜12です。
引数3を省略すると,1を仮定します。引数3に指定できる値の範囲は,引数2の値が2の場合は,1〜29です。それ以外の場合は,1〜(引数2で指定した月の最終日)です。
- 結果は,次の規則によって求められます。
- 引数1の日<引数3の場合
月数=引数1の月−引数2−1
- 引数1の月≧引数3の場合
月数=引数1の月−引数2
- 月数<0の場合
結果=(月数+12)÷2+1
- 月数≧0の場合
結果=月数÷2+1
HALFの使用例を次に示します。
HALF(DATE('1999-01-01')) ==> 1
HALF(DATE('1999-09-10')) ==> 2
HALF(DATE('1999-12-31')) ==> 2
HALF(DATE('1999-04-01'), 4) ==> 1
HALF(DATE('1999-09-10'), 4) ==> 1
HALF(DATE('1999-03-31'), 4) ==> 2
HALF(DATE('1999-03-21'), 3, 21) ==> 1
HALF(DATE('1999-09-20'), 3, 21) ==> 1
HALF(DATE('1999-03-20'), 3, 21) ==> 2
引数1で指定した文字列に対して,引数2で指定した文字位置から引数3で指定した文字数の部分文字列を削除し,その位置に引数4で指定した文字列を挿入した文字列を返します。
〔MASTER.〕INSERTSTR(引数1,引数2,引数3,引数4)
〔MASTER.〕INSERTSTR_LONG(引数1,引数2,引数3,引数4)
|
- 引数1,引数2,引数3,及び引数4に指定できるものを次に示します。
- 引数1及び引数4の値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2及び引数3の値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1及び引数4に指定可能な引数のデータ型の組合せを次の表に示します。
表2-53 システム定義スカラ関数INSERTSTR,INSERTSTR_LONGの引数のデータ型の組合せ
引数1のデータ型 |
引数4のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- 引数1及び引数4の両方に文字列型(CHAR又はVARCHAR)の値式を指定する場合,両方の引数の文字集合は同じにしてください。
- 引数4の値の最大長を次に示します。
表2-54 システム定義スカラ関数INSERTSTRの引数4の最大長
引数1(及び引数4)のデータ型 |
引数4の最大長 |
CHAR
又は
VARCHAR |
既定文字集合,及び文字集合(UTF16以外) |
255 |
文字集合(UTF16) |
510 |
MCHAR又はMVARCHAR |
255 |
NCHAR又はNVARCHAR |
127 |
表2-55 システム定義スカラ関数INSERTSTR_LONGの引数4の最大長
引数1(及び引数4)のデータ型 |
引数4の最大長 |
CHAR又はVARCHAR |
32000 |
MCHAR又はMVARCHAR |
32000 |
NCHAR又はNVARCHAR |
16000 |
- 引数2及び引数3のデータ型は,INTEGER又はSMALLINTにしてください。
- 引数3に0を指定すると,部分文字列は,削除されません。
- 結果のデータ型を次に示します。
表2-56 システム定義スカラ関数INSERTSTRの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
表2-57 システム定義スカラ関数INSERTSTR_LONGの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(32000) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(32000) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(16000) |
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式のどれかがナル値であれば,結果もナル値になります。
- 結果のデータ型が文字データ型の場合,結果の文字集合は引数1の文字集合となります。
- 引数2及び引数3に指定できる値の範囲を次に示します。なお,mは引数2の値です。
表2-58 システム定義スカラ関数INSERTSTRの引数2及び引数3の値の範囲
引数1のデータ型 |
引数2の値の範囲 |
引数3の値の範囲 |
CHAR(n)
又はVARCHAR(n) |
既定文字集合,及び文字集合(UTF16以外) |
1〜n |
0〜(n+1−m) |
文字集合(UTF16) |
1〜n/2 |
0〜(n/2+1−m) |
MCHAR(n)又はMVARCHAR(n) |
1〜n |
0〜(n+1−m) |
NCHAR(n)又はNVARCHAR(n) |
1〜n |
0〜(n+1−m) |
表2-59 システム定義スカラ関数INSERTSTR_LONGの引数2及び引数3の値の範囲
引数1のデータ型 |
引数2の値の範囲 |
引数3の値の範囲 |
CHAR(n)
又はVARCHAR(n) |
既定文字集合,及び文字集合(UTF16以外) |
1〜32000 |
0〜(32001−m) |
文字集合(UTF16) |
1〜16000 |
0〜(16001−m) |
MCHAR(n)又はMVARCHAR(n) |
1〜32000 |
0〜(32001−m) |
NCHAR(n)又はNVARCHAR(n) |
1〜16000 |
0〜(16001−m) |
- 引数1で指定した文字列の長さ(文字数)が,引数2で指定した文字位置mよりも短い場合は,文字数が(m−1)になるまで引数1の文字集合の空白(引数1のデータ型がNCHAR又はNVARCHARの場合は全角空白)が埋められ,どの部分文字列も削除されません。
引数1で指定した文字列の長さ(文字数)がm以上で,(m−1+nd)未満の場合は,文字位置mから最後の文字までが削除されます。なお,ndは引数3で指定した文字数とします。
- 結果の長さは,結果のデータ型の最大長を超えないようにしてください。結果の長さが引数1の長さより長くなる場合は,INSERTSTR_LONGを使用してください。
INSERTSTR,INSERTSTR_LONGの使用例を次に示します。
INSERTSTR('data warehouse system', 6, 9, 'base')
==> 'data base system'
INSERTSTR_LONG('data system', 6, 0, 'warehouse ')
==> 'data warehouse system'
INSERTSTR('data base management system', 11, 11, '')
==> 'data base system'
引数4に指定しているのは,長さ0の文字列です。
INSERTSTR_LONG('data base system', 31, 0, '')
==> 'data base system '
なお,結果の値には,'system'の後に14文字の空白を含みます。
引数で指定した二つの既定の文字列表現('YYYY-MM-DD hh:mm:ss')の,時刻印の間の日時間隔を,10進数表現(±YYYYMMDDhhmmss.)で返します。引数1の時刻印<引数2の時刻印の場合,結果は負の値になります。
〔MASTER.〕INTERVAL_DATETIMES(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1及び引数2のデータ型は,文字列型(CHAR又はVARCHAR)にしてください。
- 引数1及び引数2の値式に指定する値式の文字集合は同じにしてください。また,文字集合はUTF16以外にしてください。引数1及び引数2に文字集合がUTF16の文字データ型を指定する場合,CAST指定を用いて既定文字集合の文字データ型に変換してください。
- 結果のデータ型はDECIMAL(14)になります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 引数1及び引数2の値には,有効な時刻印の既定の文字列表現('YYYY-MM-DD hh:mm:ss')を指定してください。時刻印の既定の文字列表現には,小数秒を指定してないでください。
- INTERVAL_DATETIMES(時刻印1,時刻印2)の結果は,次の規則に従い計算されます。
- 時刻印1<時刻印2の場合
結果=−INTERVAL_DATETIMES(時刻印2 ,時刻印1)
- 時刻印1≧時刻印2の場合
・時刻印1の秒≧時刻印2の秒のとき
結果の秒=時刻印1の秒−時刻印2の秒
・時刻印1の秒<時刻印2の秒のとき
結果の秒=時刻印1の秒−時刻印2の秒+60
時刻印2の分=時刻印2の分+1
・時刻印1の分≧時刻印2の分のとき
結果の分=時刻印1の分−時刻印2の分
・時刻印1の分<時刻印2の分のとき
結果の分=時刻印1の分−時刻印2の分+60
時刻印2の時=時刻印2の時+1
・時刻印1の時≧時刻印2の時のとき
結果の時=時刻印1の時−時刻印2の時
・時刻印1の時<時刻印2の時のとき
結果の時=時刻印1の時−時刻印2の時+24
時刻印2の日=時刻印2の日+1
・時刻印1の日≧時刻印2の日のとき
結果の日=時刻印1の日−時刻印2の日
・時刻印1の日<時刻印2の日のとき
結果の日=時刻印1の日−時刻印2の日+時刻印2の月の最終日
時刻印2の月=時刻印2の月+1
・時刻印1の月≧時刻印2の月のとき
結果の月=時刻印1の月−時刻印2の月
・時刻印1の月<時刻印2の月のとき
結果の月=時刻印1の月−時刻印2の月+12
時刻印2の年=時刻印2の年+1
結果の年=時刻印1の年−時刻印2の年
- 結果=(結果の年×10000000000+結果の月×100000000
+結果の日×1000000+結果の時×10000+結果の分×100
+結果の秒)
INTERVAL_DATETIMESの使用例を次に示します。
INTERVAL_DATETIMES('2001-01-01 00:00:00', '1999-12-31 23:59:59')
==> 10000000001.
INTERVAL_DATETIMES('1999-12-31 23:59:59', '2001-01-01 00:00:00')
==> -10000000001.
INTERVAL_DATETIMES('1996-09-20 15:10:20', '1956-06-07 03:15:30')
==> 400313115450.
NUMEDIT(INTERVAL_DATETIMES('1996-09-20 15:10:20',
'1956-06-07 03:15:30'),
'<9990" years "90" months "90" days "90" hours "
90" minutes "90" seconds"')
==> '40 years 3 months 13 days 11 hours 54 minutes 50 seconds'
引数の文字列が数字だけかどうかを,BOOLEAN値で返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数又は混在文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は,文字列型(CHAR又はVARCHAR),又は混在文字列型(MCHAR又はMVARCHAR)にしてください。また,引数の値の長さは60バイト以下にしてください。
- 引数のデータ型が文字列型(CHAR又はVARCHAR)の場合,そのデータ型の文字集合はUTF16以外にしてください。引数に文字集合がUTF16の文字データ型を指定する場合,CAST指定を用いて既定文字集合の文字データ型に変換してください。
- 結果のデータ型はBOOLEANになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 引数に指定された文字列が数字('0'〜'9')だけならば,結果はTRUEになり,そうでなければ,結果はFALSEになります。
ISDIGITSの使用例を次に示します。
ISDIGITS('1234567890') ==> true
ISDIGITS('123ABC') ==> false
ISDIGITS('') ==> false
引数の文字列が全角文字だけどうかを,BOOLEAN値で返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数又は混在文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は,文字列型(CHAR又はVARCHAR),又は混在文字列型(MCHAR又はMVARCHAR)にしてください。
- 引数のデータ型が文字列型(CHAR又はVARCHAR)の場合,そのデータ型の文字集合は既定文字集合にしてください。
- 結果のデータ型はBOOLEANになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 引数に指定された文字列が半角文字だけならば,結果はTRUEになり,そうでなければ,結果はFALSEになります。
IS_DBLBYTESの使用例を次に示します。
IS_DBLBYTES(M'data base management system HiRDB') ==> false
IS_DBLBYTES(M'データベース管理システムHiRDB') ==> false
IS_DBLBYTES(M'データベース管理システム') ==> true
引数の文字列が半角文字だけかどうかを,BOOLEAN値で返します。
〔MASTER.〕IS_SNGLBYTES(引数)
|
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数又は混在文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は,文字列型(CHAR又はVARCHAR),又は混在文字列型(MCHAR又はMVARCHAR)にしてください。
- 引数のデータ型が文字列型(CHAR又はVARCHAR)の場合,そのデータ型の文字集合は既定文字集合にしてください。
- 結果のデータ型はBOOLEANになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 引数に指定された文字列が半角文字だけならば,結果はTRUEになり,そうでなければ,結果はFALSEになります。
IS_SNGLBYTESの使用例を次に示します。
IS_SNGLBYTES(M'data base management system HiRDB') ==> true
IS_SNGLBYTES(M'データベース管理システムHiRDB') ==> false
IS_SNGLBYTES(M'データベース管理システム') ==> false
引数で指定した日付の,年月の最後の日付を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型はDATEにしてください。
- 結果のデータ型はDATEになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
LAST_DAYの使用例を次に示します。
LAST_DAY(DATE('1999-01-01')) ==> '1999-01-31'
LAST_DAY(DATE('1999-02-16')) ==> '1999-02-28'
LAST_DAY(DATE('1999-06-10')) ==> '1999-06-30'
LAST_DAY(DATE('1999-12-25')) ==> '1999-12-31'
LAST_DAY(DATE('2000-02-03')) ==> '2000-02-29'
すべての引数中の,最小値を返します。
〔MASTER.〕LEAST(引数,引数〔,引数〕)
|
- 引数に指定できるものを次に示します。
- 引数の数は,最大3個です。
- 値式に指定できるものを次に示します。
- 定数
- USER,CURRENT_DATE,又はCURRENT_TIME
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算,日付演算,時刻演算,又は連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 指定可能な引数のデータ型の組合せを次の表に示します。
表2-60 システム定義スカラ関数LEAST(引数3を省略する場合)の引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
指定可否 |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
指定可 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
DATE |
DATE |
指定可 |
TIME |
TIME |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
表2-61 システム定義スカラ関数LEAST(引数3を指定する場合)の引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
引数3のデータ型 |
指定可否 |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
INTEGER,SMALLINT,DECIMAL,FLOAT,又はSMALLFLT |
指定可 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
DATE |
DATE |
DATE |
指定可 |
TIME |
TIME |
TIME |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- 引数に指定した値式のデータ型が文字データ型の場合,値式の文字集合はすべて同じにしてください。
- 結果のデータ型を次の表に示します。
表2-62 システム定義スカラ関数LEASTの結果のデータ型
引数のデータ型 |
結果のデータ型 |
INTEGER又はSMALLINT |
INTEGER |
DECIMAL〔,INTEGER又はSMALLINT〕 |
DECIMAL※1 |
FLOAT,SMALLFLT〔,DECIMAL,INTEGER,又はSMALLINT〕 |
FLOAT |
CHAR又はVARCHAR |
VARCHAR※2 |
MCHAR又はMVARCHAR |
MVARCHAR※2 |
NCHAR又はNVARCHAR |
NVARCHAR※2 |
DATE |
DATE |
TIME |
TIME |
- 注※1
- 精度と位取りを次に示します。pi及びsiを,それぞれi番目の引数の精度及び位取りとします。
- 精度=max(p1−s1,p2−s2,…)+max(s1,s2,…)
- 位取り=max(s1,s2,…)
- 結果の精度が38を超えた場合はエラーになります。また,INTEGERはDECIMAL(10,0),SMALLINTはDECIMAL(5,0)として扱われます。
- 注※2
- 最大長を次に示します。niをi番目の引数の最大長(固定長のデータ型の場合は定義長)とします。
- 最大長=max(n1,n2,…)
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式のどれかがナル値であれば,結果もナル値になります。
- 結果のデータ型が文字列データ型の場合,引数の文字集合が結果の文字集合となります。
引数1の文字列の先頭(最も左)から,引数2で指定された文字数の部分文字列を抽出します。
〔MASTER.〕LEFTSTR(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2の値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型は,次のどれかを指定してください。
- 任意の文字集合の文字列データ型(CHAR,VARCHAR)
- 各国文字列データ型(NCHAR,NVARCHAR)
- 混在文字列データ型(MCHAR,MVARCHAR)
- 引数2のデータ型は,INTEGER又はSMALLINTにしてください。
- 引数2に指定できる値の範囲を次の表に示します。
表2-63 システム定義スカラ関数LEFTSTRの引数2の値の範囲
引数1のデータ型 |
引数2の値の範囲 |
CHAR(n)
又は
VARCHAR(n) |
既定文字集合,及び文字集合(UTF16以外) |
0〜n |
文字集合(UTF16) |
0〜n/2 |
MCHAR(n)又はMVARCHAR(n) |
0〜n |
NCHAR(n)又はNVARCHAR(n) |
0〜n |
- 結果のデータ型を次の表に示します。
表2-64 システム定義スカラ関数LEFTSTRの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 引数1の文字列の値の文字数が,引数2で指定した文字数よりも少ない場合,結果は引数1と同じ値になります。
- 結果のデータ型が文字列型の場合,引数1の文字集合が結果の文字集合となります。
LEFTSTRの使用例を次に示します。
LEFTSTR('data base system', 9) ==> 'data base'
LEFTSTR('data system', 0) ==> '' (長さ0の文字列)
引数の自然対数を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
引数の常用対数を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
引数1の文字列の左から,引数2で指定された文字列を構成する文字を取り除きます。引数2で指定された文字列中の文字以外が現れるまで,繰り返し取り除きます。
〔MASTER.〕LTRIM(引数1〔,引数2〕)
|
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型は,次のどれかを指定してください
- 任意の文字集合の文字列型(CHAR,VARCHAR)
- 各国文字列型(NCHAR,NVARCHAR)
- 混在文字列型(MCHAR,MVARCHAR)
引数2を指定する場合,指定可能な引数のデータ型の組合せを次の表に示します。
- 引数2を指定する場合,指定可能な引数のデータ型の組合せを次の表に示します。
表2-65 システム定義スカラ関数LTRIMの引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- 引数2の値の長さは,文字列データ型又は混在文字列データ型の場合は30バイト以下(文字集合がUTF16の文字データ型の場合は60バイト以下),各国文字列データ型の場合は30文字以下にしてください。
- 引数1及び引数2のデータ型が両方とも文字列型の場合,値式の文字集合は同じにしてください。
- 結果のデータ型を次の表に示します。
表2-66 システム定義スカラ関数LTRIMの結果のデータ型
引数1(及び引数2)のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
- 結果のデータ型が文字列型(CHAR又はVARCHAR)の場合,引数1の文字集合が結果の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 引数2を省略すると,次のように仮定されます。
引数1のデータ型 |
引数2を省略した場合の仮定値 |
CHAR(n)又はVARCHAR(n) |
半角空白1文字からなる文字列 |
MCHAR(n)又はMVARCHAR(n) |
半角空白と全角空白からなる文字列 |
NCHAR(n)又はNVARCHAR(n) |
全角空白1文字からなる文字列 |
LTRIMの使用例を次に示します。
LTRIM('abcabcabdata base', 'abc') ==> 'data base'
LTRIM(' data base') ==> 'data base'
引数1の文字列の左から,引数2で指定された文字列と一致する部分文字列を,一致しなくなるまで繰り返し取り除きます。
〔MASTER.〕LTRIMSTR(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 指定可能な引数のデータ型の組合せを次の表に示します。
表2-67 システム定義スカラ関数LTRIMSTRの引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- 引数1及び引数2のデータ型が両方とも文字列型の場合,値式の文字集合は同じにしてください。
- 引数2の最大長を次の表に示します。
表2-68 システム定義スカラ関数LTRIMSTRの引数2の最大長
引数1(及び引数2)のデータ型 |
引数2の最大長 |
CHAR
又は
VARCHAR |
既定文字集合,及び文字集合(UTF16以外) |
255 |
文字集合(UTF16) |
510 |
MCHAR又はMVARCHAR |
255 |
NCHAR又はNVARCHAR |
127 |
- 結果のデータ型を次の表に示します。
表2-69 システム定義スカラ関数LTRIMSTRの結果のデータ型
引数1(及び引数2)のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
- 結果のデータ型が文字列型(CHAR又はVARCHAR)の場合,引数1の文字集合が結果の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
LTRIMSTRの使用例を次に示します。
LTRIMSTR('abcabcabdata base', 'abc') ==> 'abdata base'
引数で指定された時刻を,深夜0時からの秒数で返します。
〔MASTER.〕MIDNIGHTSECONDS(引数)
|
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_TIME
- 列指定
- SQL変数又はSQLパラメタ
- 時刻演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型はTIMEにしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 結果は,次の計算式から求められます。
結果=(((引数の時×60)+引数の分)×60)+引数の秒
MIDNIGHTSECONDSの使用例を次に示します。
MIDNIGHTSECONDS(TIME('23:59:59')) ==> 86399
MIDNIGHTSECONDS(TIME('14:14:14')) ==> 51254
引数で指定した日付の,月の名前を示す文字列('January','February'などの英語の文字列)を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型はDATEにしてください。
- 結果のデータ型はVARCHAR(18)になります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 結果の文字集合は既定の文字集合となります。
MONTHNAMEの使用例を次に示します。
MONTHNAME(DATE('1999-01-01')) ==> 'January'
MONTHNAME(DATE('1999-02-28')) ==> 'February'
MONTHNAME(DATE('1999-03-03')) ==> 'March'
MONTHNAME(DATE('1999-04-01')) ==> 'April'
MONTHNAME(DATE('1999-05-05')) ==> 'May'
MONTHNAME(DATE('1999-06-07')) ==> 'June'
MONTHNAME(DATE('1999-07-07')) ==> 'July'
MONTHNAME(DATE('1999-08-15')) ==> 'August'
MONTHNAME(DATE('1999-09-23')) ==> 'September'
MONTHNAME(DATE('1999-10-10')) ==> 'October'
MONTHNAME(DATE('1999-11-11')) ==> 'November'
MONTHNAME(DATE('1999-12-31')) ==> 'December'
引数で指定した二つの日付間の月数を,実数(FLOAT型)で返します。
〔MASTER.〕MONTHS_BETWEEN(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1及び引数2のデータ型はDATEにしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- MONTHS_BETWEEN(日付1,日付2)の結果の月数は,次の規則に従い計算されます。
- 日付1<日付2の場合
結果=−MONTHS_BETWEEN(日付2,日付1)
- 日付1≧日付2の場合
mを0以上の整数とし,日付4≦日付1<日付3を満たす(日付2+mか月)の日付,及び(日付2+(m+1)か月)の日付を,それぞれ日付4及び日付3とします。
日付4と日付1の間の日数(DAYS(日付1)−DAYS(日付4)),及び日付4と日付3の間の日数(DAYS(日付3)−DAYS(日付4))を,それぞれd1及びd2とします。d2の値は,28,29,30,又は31のどれかになります。
結果の月数は,(m+d1÷d2)か月になります。
これらの日付1,日付2,日付3,及び日付4の関係を次の図に示します。
図2-7 日付1,日付2,日付3,及び日付4の関係(MONTHS_BETWEEN)
![[図データ]](FIGURE/ZU2S0450.GIF)
MONTHS_BETWEENの使用例を次に示します。
MONTHS_BETWEEN(DATE('1999-07-10'), DATE('1999-06-10'))
==> 1
MONTHS_BETWEEN(DATE('1999-07-11'), DATE('1999-06-10'))
==> 1.032258…
MONTHS_BETWEEN(DATE('1999-06-11'), DATE('1999-05-10'))
==> 1.033333…
MONTHS_BETWEEN(DATE('1999-02-11'), DATE('1999-01-10'))
==> 1.035714…
MONTHS_BETWEEN(DATE('2000-02-11'), DATE('2000-01-10'))
==> 1.034482…
MONTHS_BETWEEN(DATE('1999-09-09'), DATE('1999-06-10'))
==> 2.967741…
MONTHS_BETWEEN(DATE('1999-06-10'), DATE('1999-09-09'))
==> -2.967741…
引数1で指定した日付よりも後で最も近い,引数2の整数で指定した曜日の日付を返します。
〔MASTER.〕NEXT_DAY(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2の値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型はDATEにしてください。引数2のデータ型はINTEGER又はSMALLINTにしてください。
- 結果のデータ型はDATEになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 引数2で指定した整数値の意味を次の表に示します。
表2-70 曜日を表す引数2 の整数値の意味
引数2の整数値 |
意味(曜日) |
1 |
日曜日(Sunday) |
2 |
月曜日(Monday) |
3 |
火曜日(Tuesday) |
4 |
水曜日(Wednesday) |
5 |
木曜日(Thursday) |
6 |
金曜日(Friday) |
7 |
土曜日(Saturday) |
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
NEXT_DAYの使用例を次に示します。
NEXT_DAY(DATE('1999-06-10'), 1) ==> '1999-06-13'
NEXT_DAY(DATE('1999-06-10'), 4) ==> '1999-06-16'
NEXT_DAY(DATE('1999-06-10'), 5) ==> '1999-06-17'
NEXT_DAY(DATE('1999-06-10'), 6) ==> '1999-06-11'
NEXT_DAY(DATE('1999-06-10'), 7) ==> '1999-06-12'
なお,'1999-06-10'は木曜日です。
引数1で指定した数値を,引数2で指定した形式の文字列表現に編集します。
〔MASTER.〕NUMEDIT(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2の値式に指定できるものを次に示します。
- 文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型は数データ型にしてください。
- 引数2のデータ型は文字列型(CHAR又はVARCHAR)にしてください。また,引数2の値の長さは250バイト以下にしてください。
- 引数2のデータ型の文字集合はUTF16以外にしてください。引数2に文字集合がUTF16の文字データ型を指定する場合,CAST指定を用いて既定文字集合の文字データ型に変換してください。
- 結果のデータ型はVARCHAR(255)になります。
- 結果の文字集合は,引数2の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 引数2の値は,次の形式で指定してください。
〔"文字列"〕〔+〕
{〔{<|>}〕{9|0|,|"文字列"}…〔.{9|0|,|"文字列"}…〕
|{E|e}.整数 〔 "文字列" 〕}
- "文字列"
- 引用符で囲まれた文字列は,その文字列自身を表現します。
- 引用符で囲まれた文字列中で引用符そのものを指定する場合は,連続する二つの引用符で表現します。
- +
- 〔+〕は,符号の表現方法を指定します。
- '+'は,引数1が負の値ならばマイナス符号(−),そうでなければプラス符号(+)で表現します。
- '+'を省略すると,引数1が負の値ならば,マイナス符号(−),そうでなければ,一つの空白文字で表現します。
- {<|>}
- {<|>}は,数値の文字表現の詰め込み方を指定します。
- '<'を指定すると,すべての空白文字を取り除き,文字表現を左にシフトします。
- '>'を指定すると,すべての空白文字を取り除き,文字表現を右にシフトし,左側に空白文字を埋めます。
- '<','>'のどちらも指定しない場合,文字表現をシフトしません。
- {9|0|,|"文字列"}…〔.{9|0|,|"文字列"}〕…
- '9','0'は数値の一つのけたを表現し,引数1の数値に対応するけたを編集します。
- '9'及び'0'の総個数は,編集後の数値の精度を示します。
- '0'を指定すると,その'0'の編集結果は対応するけたの数字になります。
- ','を指定すると,その','の両側の編集結果が数字ならば,','の編集結果はそれ自身になり,そうでなければ一つの空白文字になります。
- '.' は,小数点を表現します。
- '.'より後の'9'及び'0'の総個数は,編集後の数値の位取りを示します。
- '.'より前に'9'を指定すると,対応するけたが0で,その'9'が最初のけたである,又はその'9'の編集結果の左の編集結果が数字でない(ただし,コンマに対応するときは除く)の場合,その'9'の編集結果は一つの空白文字になります。そうでなければ,その'9'の編集結果は対応するけたの数字になります。
- '.'より後に'9'を指定すると,対応するけたが0で,その'9'が最後のけたである,又はその'9'の編集結果の右の編集結果が数字でない(ただし,コンマに対応するときは除く)の場合,その'9'の編集結果は空(0個)の文字になります。そうでなければ,その'9'の編集結果は対応するけたの数字になります。
- {E|e}.整数
- {E|e}.整数は,浮動小数点数形式の書式で指定します。
- 編集結果は整数で指定された仮数の位取りを持つ,浮動小数点数形式になります。仮数の位取りは,30未満にしてください。
- 引数1の値が引数2で指定された形式で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
- 編集によって下位のけたが失われる場合,結果の値は丸められます。
NUMEDITの使用例を次に示します。
NUMEDIT(1234567.89, '99,999,990.00"$"') ==> ' 1,234,567.89$'
NUMEDIT(1000, '99,999,990.00"$"') ==> ' 1,000.00$'
NUMEDIT(1234567.89, '" $"99,999,990.00') ==> ' $ 1,234,567.89'
NUMEDIT(1000, '" $"99,999,990.00') ==> ' $ 1,000.00'
NUMEDIT(1234567.89, '"$"+99,999,990,00') ==> '$+ 1,234,567.89'
NUMEDIT(-1000, '"$"+99,999,990.00') ==> '$- 1,000.00'
NUMEDIT(1234567.89, '"$">99,999,990.00') ==> ' $1,234,567.89'
NUMEDIT(1000, '"$">99,999,990.00') ==> ' $1,000.00'
NUMEDIT(1234567.89, '"$"<99,999,990.00') ==> '$1,234,567.89'
NUMEDIT(1000, '"$"<99,999,990.00') ==> '$1,000.00'
NUMEDIT(0.5, '"$"<99,999,990.00') ==> '$0.50'
NUMEDIT(1234567.89, '+E.10"$"') ==> '+1.2345678900E+0.6$'
NUMEDIT(1234567.89, '"$"+e.10') ==> '$+1.2345678900e+0.6'
円周率πの値を返します。
- 結果のデータ型は,FLOAT型になります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。ただし,常に円周率の値が返されるため,ナル値が返されることはありません。
PIの使用例を次に示します。
PI() ==> 3.14159265358979323846
引数1で指定した文字列中の,引数3で指定した文字位置以降に,引数2で指定した部分文字列が引数4で指定した回数(nd)以上出現した場合,その回数nd番目の部分文字列の開始位置を文字単位で返します。
〔MASTER.〕POSSTR(引数1,引数2〔,引数3〔,引数4〕〕)
|
- 引数1,引数2,引数3,及び引数4に指定できるものを次に示します。
- 引数1及び引数2の値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数3及び引数4の値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1及び引数2に指定可能な引数のデータ型の組合せを次の表に示します。
表2-71 システム定義スカラ関数POSSTRの引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- 引数1及び引数2のデータ型が両方とも文字列データ型(CHAR又はVARCHAR)の場合,値式の文字集合は同じにしてください。
- 引数2の値の最大長を次の表に示します。
表2-72 システム定義スカラ関数POSSTR の引数2の最大長
引数1(及び引数2)のデータ型 |
引数2の最大長 |
CHAR
又は
VARCHAR |
既定文字集合,及び文字集合(UTF16以外) |
255 |
文字集合(UTF16) |
510 |
MCHAR又はMVARCHAR |
255 |
NCHAR又はNVARCHAR |
127 |
- 引数3及び引数4のデータ型は,INTEGER又はSMALLINTにしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式のどれかがナル値であれば,結果もナル値になります。
- 引数3及び引数4に指定できる値の範囲を次の表に示します。
表2-73 システム定義スカラ関数POSSTR の引数3及び引数4の値の範囲
引数1(及び引数2)のデータ型 |
引数3の値の範囲 |
引数4の値の範囲 |
CHAR(n)
又は
VARCHAR(n) |
既定文字集合,及び文字集合(UTF16以外) |
1〜n |
1〜n |
文字集合(UTF16) |
1〜n/2 |
1〜n/2 |
MCHAR(n)又はMVARCHAR(n) |
1〜n |
1〜n |
NCHAR(n)又はNVARCHAR(n) |
1〜n |
1〜n |
- 引数3を省略すると,1が仮定されます。また,引数4を省略しても1が仮定されます。
- 引数2の文字列の長さ(文字数)が0の場合,結果は引数3の値になります。
- 引数2の文字列と一致する部分文字列が,引数1の文字列中の引数3の文字位置(m)以降に,引数4で指定した回数(nd)以上出現する場合,結果はm以上の値で,nd番目の部分文字列が開始する前の引数1の文字列内の文字数に1を加えた値になります。
なお,引数2の文字列と一致するこれらの部分文字列は,重ならないものとします。引数2の文字列と一致する部分文字列が,引数1の文字列中の引数3の文字位置(m)以降に,引数4で指定した回数(nd)以上出現しない場合,結果は0になります。
POSSTRの使用例を次に示します。
POSSTR('data base system', 'a') ==> 2
POSSTR('data base system', '') ==> 1 (引数2は長さ0の文字列)
POSSTR('data base system', 'a', 5) ==> 7
POSSTR('data base system', 'st') ==> 13
POSSTR('data base system', 'a', 1, 3) ==> 7
POSSTR('data base system', 'manager') ==> 0
引数1の値のn乗を返します。なお,nは引数2の値とします。
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型を次の表に示します。
表2-74 システム定義スカラ関数POWERの結果のデータ型
引数1のデータ型 |
引数2のデータ型 |
SMALLINT又はINTEGER |
DECIMAL(p,s),SMALLFLT,又はFLOAT |
SMALLINT又は
INTEGER |
INTEGER |
FLOAT |
DECIMAL(p,s),SMALLFLT,又はFLOAT |
FLOAT |
FLOAT |
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 引数1に負の値を指定し,引数2に整数でない値を指定すると,定義域エラー(domain error occurs)になります。
- 引数1に値0を指定し,引数2に正でない値を指定すると,0除算(division by zero)になります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
引数2で指定した月,及び引数3で指定した日を各年度の開始の月日として,引数1で指定した日付が第何四半期かを示す1〜4の整数で返します。
〔MASTER.〕QUARTER(引数1〔,引数2〔,引数3〕〕)
|
- 引数1,引数2,及び引数3に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2及び引数3の値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型はDATEにしてください。
- 引数2及び引数3のデータ型は,INTEGER又はSMALLINTにしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式のどれかがナル値であれば,結果もナル値になります。
- 引数2を省略すると,1が仮定されます。引数2に指定できる値の範囲は,1〜12です。
- 引数3を省略すると,1が仮定されます。引数3に指定できる値の範囲は,引数2の値が2の場合は,1〜29です。それ以外の場合は,1〜(引数2で指定した月の最終日)です。
- 結果は,次の規則によって求められます。
- 引数1の日<引数3の場合
月数=引数1の月−引数2−1
- 引数1の月≧引数3の場合
月数=引数1の月−引数2
- 月数<0の場合
結果=(月数+12)÷4+1
- 月数≧0の場合
結果=月数÷4+1
QUARTERの使用例を次に示します。
QUARTER(DATE('1999-01-01')) ==> 1
QUARTER(DATE('1999-09-10')) ==> 3
QUARTER(DATE('1999-12-31')) ==> 4
QUARTER(DATE('1999-04-01'), 4) ==> 1
QUARTER(DATE('1999-09-10'), 4) ==> 2
QUARTER(DATE('1999-03-31'), 4) ==> 4
QUARTER(DATE('1999-03-21'), 3, 21) ==> 1
QUARTER(DATE('1999-09-20'), 3, 21) ==> 2
QUARTER(DATE('1999-03-20'), 3, 21) ==> 4
引数で指定した角度を,度数からラジアンに変換します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
引数1の文字列中の,引数2の文字列と一致するすべての部分文字列を,引数3の文字列に置き換えます。
〔MASTER.〕REPLACE(引数1,引数2〔,引数3〕)
〔MASTER.〕REPLACE_LONG(引数1,引数2,引数3)
|
- 引数1,引数2,及び引数3に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 指定可能な引数のデータ型の組合せを次の表に示します。
表2-75 システム定義スカラ関数REPLACE(引数3を省略する場合)の引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
表2-76 システム定義スカラ関数REPLACE(引数3を指定する場合),REPLACE_LONGの引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
引数3のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- 引数2及び引数3の値の最大長を次の表に示します。
表2-77 システム定義スカラ関数REPLACE,REPLACE_LONGの引数2,引数3の最大長
引数1(及び引数2,引数3)のデータ型 |
引数2及び引数3の最大長 |
CHAR
又は
VARCHAR |
既定文字集合,及び文字集合(UTF16以外) |
255 |
文字集合(UTF16) |
510 |
MCHAR又はMVARCHAR |
255 |
NCHAR又はNVARCHAR |
127 |
- 引数1,引数2,及び引数3のデータ型が文字列型(CHAR又はVARCHAR)の場合,引数に指定する値式の文字集合は同じにしてください。
- 引数3を省略すると,空の文字列を仮定し,引数1の文字列中から引数2の文字列と一致するすべての部分文字列を削除します。
- 結果のデータ型を次に示します。
表2-78 システム定義スカラ関数REPLACEの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
表2-79 システム定義スカラ関数REPLACE_LONGの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(32000) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(32000) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(16000) |
- 結果のデータ型が文字列型(CHAR又はVARCHAR)の場合,引数1の文字集合が結果の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式のどれかがナル値であれば,結果もナル値になります。
- 結果の長さは,結果のデータ型の最大長を超えないようにしてください。結果の長さが引数1の長さより長くなる場合は,REPLACE_LONGを使用してください。
REPLACEの使用例を次に示します。
REPLACE('a big dog and a small dog', 'dog', 'cat')
==> 'a big cat and a small cat'
REPLACE('a big dog and a small dog', 'big ')
==> 'a dog and a small dog'
引数で指定した文字列中の,左右を反転した文字列を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は,次のどれかを指定してください。
- 任意の文字集合の文字列型(CHAR,VARCHAR)
- 各国文字列型(NCHAR,NVARCHAR)
- 混在文字列型(MCHAR,MVARCHAR)
- 結果のデータ型を次の表に示します。
表2-80 システム定義スカラ関数REVERSESTRの結果のデータ型
引数のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
- 結果のデータ型が文字列型(CHAR又はVARCHAR)の場合,引数の文字集合が結果の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
REVERSESTRの使用例を次に示します。
REVERSESTR('data base') ==> 'esab atad'
REVERSESTR('esab atad') ==> 'data base'
REVERSESTR(' esab atad') ==> 'data base '
引数1の文字列の最後(最も右)から,引数2で指定した文字数の部分文字列を抽出します。
〔MASTER.〕RIGHTSTR(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2の値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型は,次のどれかを指定してください。
- 任意の文字集合の文字列型(CHAR,VARCHAR)
- 各国文字列型(NCHAR,NVARCHAR)
- 混在文字列型(MCHAR,MVARCHAR)
- 引数2のデータ型は,INTEGER又はSMALLINTにしてください。
- 引数2に指定できる値の範囲を次の表に示します。
表2-81 システム定義スカラ関数RIGHTSTRの引数2の値の範囲
引数1のデータ型 |
引数2の値の範囲 |
CHAR(n)
又は
VARCHAR(n) |
既定文字集合,及び文字集合(UTF16以外) |
0〜n |
文字集合(UTF16) |
0〜n/2 |
MCHAR(n)又はMVARCHAR(n) |
0〜n |
NCHAR(n)又はNVARCHAR(n) |
0〜n |
- 結果のデータ型を次の表に示します。
表2-82 システム定義スカラ関数RIGHTSTRの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
- 結果のデータ型が文字列型(CHAR又はVARCHAR)の場合,引数1の値式の文字集合が結果の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 引数1の文字列の値の文字数が,引数2で指定した文字数よりも少ない場合,結果は引数1と同じ値になります。
RIGHTSTRの使用例を次に示します。
RIGHTSTR('data base system', 6) ==> 'system'
RIGHTSTR('data system', 0) ==> '' (長さ0の文字列)
引数1の値の,小数点以下nけたより後のけた(10の-n乗未満のけた)を丸めます。なお,nは引数2の値とします。
引数3を指定すると,引数1の10の-n-1乗の位の値が,引数3の値以上ならば切り上げ,そうでなければ切り捨てます。
〔MASTER.〕ROUND(引数1〔,引数2〔,引数3〕〕)
|
- 引数1,引数2,及び引数3に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型は数データ型にしてください。引数2及び引数3のデータ型は,INTEGER又はSMALLINTにしてください。
- 引数2を省略すると0が仮定されます。引数2に指定できる値の範囲を次の表に示します。
表2-83 システム定義スカラ関数ROUNDの引数2に指定できる値の範囲
結果のデータ型 |
引数2に指定できる値の範囲 |
INTEGER |
−9〜0 |
DECIMAL(p, s) |
−(p−s−1)〜s |
FLOAT |
・HP-UX(32ビットモードの場合)の場合
−307〜307
・HP-UX(64ビットモードの場合),Solaris,AIX,Linux及びWindowsの場合
−307〜323 |
- 結果のデータ型を次の表に示します。
表2-84 システム定義スカラ関数ROUNDの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
SMALLINT |
INTEGER |
INTEGER |
INTEGER |
DECIMAL(p, s) |
DECIMAL(p, s) |
SMALLFLT |
FLOAT |
FLOAT |
FLOAT |
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1,引数2,又は引数3の値式がナル値であれば,結果もナル値になります。
- 引数3を省略すると,5が仮定されます。引数3に指定できる値の範囲は,1〜9です。引数1の10の−n−1乗の位の値が引数3の値以上ならば,切り上げ,そうでなければ切り捨てます。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
引数1で指定された日付を,その日付の日の部分を端数として丸めた日付を返します。
20日締めで年月を求める場合などに利用できます。
〔MASTER.〕ROUNDMONTH(引数1〔,引数2〕)
|
- 引数1及び引数2に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2の値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型はDATEにしてください。引数2のデータ型は,INTEGER又はSMALLINTにしてください。
- 結果のデータ型はDATEになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 引数2を省略すると,16が仮定されます。引数2に指定できる値の範囲は,1〜32です。
- 結果は,次の規則によって求められます。
- 引数1の日<引数2の場合
結果の年=引数1の年
結果の月=引数1の月
結果の日=1
- 引数1の日≧引数2の場合
・引数1の月<12の場合
結果の年=引数1の年
結果の月=引数1の月+1
結果の日=1
・引数1の月=12の場合
結果の年=引数1の年+1
結果の月=1
結果の日=1
- 関数の結果が,0001年01月01日〜9999年12月31日の範囲でないならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
ROUNDMONTHの使用例を次に示します。
ROUNDMONTH(DATE('1999-08-15')) ==> '1999-08-01'
ROUNDMONTH(DATE('1999-08-16')) ==> '1999-09-01'
ROUNDMONTH(DATE('1999-09-20'), 21) ==> '1999-09-01'
ROUNDMONTH(DATE('1999-09-21'), 21) ==> '1999-10-01'
ROUNDMONTH(DATE('1999-12-21'), 21) ==> '2000-01-01'
ROUNDMONTH(DATE('1999-03-31'), 32) ==> '1999-03-01'
ROUNDMONTH(DATE('2000-02-29'), 29) ==> '2000-03-01'
ROUNDMONTH(DATE('2000-03-31'), 29) ==> '2000-04-01'
ROUNDMONTH(DATE('9999-12-31'), 26) ==> オーバフロー
引数1の文字列の右から,引数2で指定された文字列を構成する文字を取り除きます。引数2で指定された文字列中の文字以外が現れるまで,繰り返し取り除きます。
〔MASTER.〕RTRIM(引数1〔,引数2〕)
|
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型は,次のどれかを指定してください。
- 任意の文字集合の文字列型(CHAR,VARCHAR)
- 各国文字列型(NCHAR,NVARCHAR)
- 混在文字列型(MCHAR,MVARCHAR)
- 引数2を指定する場合,指定可能な引数のデータ型の組合せを次の表に示します。
表2-85 システム定義スカラ関数RTRIMの引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- 引数1及び引数2のデータ型が両方とも文字列型(CHAR又はVARCHAR)の場合,引数に指定する値式の文字集合は同じにしてください。
- 引数2の値の長さは,文字列型又は混在文字列型の場合は30バイト以下(文字集合がUTF16の文字データ型の場合は60バイト以下),各国文字列型の場合は30文字以下にしてください。
- 結果のデータ型を次の表に示します。
表2-86 システム定義スカラ関数RTRIMの結果のデータ型
引数1(及び引数2)のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
- 結果のデータ型が文字列型(CHAR又はVARCHAR)の場合,引数1の文字集合が結果の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- 引数2を省略すると,次のように仮定されます。
引数1のデータ型 |
引数2を省略した場合の仮定値 |
CHAR(n)又はVARCHAR(n) |
半角空白1文字からなる文字列 |
MCHAR(n)又はMVARCHAR(n) |
半角空白と全角空白からなる文字列 |
NCHAR(n)又はNVARCHAR(n) |
全角空白1文字からなる文字列 |
RTRIMの使用例を次に示します。
RTRIM('data basebcabcabc', 'abc') ==> 'data basebc'
RTRIM('data base ') ==> 'data base'
引数1の文字列の右から,引数2で指定された文字列と一致する部分文字列を,一致しなくなるまで繰り返し取り除きます。
〔MASTER.〕RTRIMSTR(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 指定可能な引数のデータ型の組合せを次の表に示します。
表2-87 システム定義スカラ関数RTRIMSTRの引数のデータ型の組合せ
引数1のデータ型 |
引数2のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- 引数1及び引数2のデータ型が両方とも文字列型(CHAR又はVARCHAR)の場合,引数に指定する値式の文字集合は同じにしてください。
- 引数2の最大長を次の表に示します。
表2-88 システム定義スカラ関数RTRIMSTRの引数2の最大長
引数1(及び引数2)のデータ型 |
引数2の最大長 |
CHAR
又は
VARCHAR |
既定文字集合,及び文字集合(UTF16以外) |
255 |
文字集合(UTF16) |
510 |
MCHAR又はMVARCHAR |
255 |
NCHAR又はNVARCHAR |
127 |
- 結果のデータ型を次の表に示します。
表2-89 システム定義スカラ関数RTRIMSTRの結果のデータ型
引数1(及び引数2)のデータ型 |
引数2の最大長 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
- 結果のデータ型が文字列型(CHAR又はVARCHAR)の場合,引数1の文字集合が結果の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
RTRIMSTRの使用例を次に示します。
RTRIMSTR('data basebcabcabc', 'abc') ==> 'data basebc'
引数の符号(引数が正の値ならば+1,負の値ならば−1,0ならば0)を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型を次の表に示します。
表2-90 システム定義スカラ関数SIGNの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
SMALLINT |
INTEGER |
INTEGER |
INTEGER |
DECIMAL(p,s) |
DECIMAL(1,0) |
SMALLFLT |
FLOAT |
FLOAT |
FLOAT |
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
ラジアンで角度を指定した引数の,正弦(三角関数SIN)を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
引数の双曲線正弦を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
引数の値の平方根を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 引数に負の値を指定すると,定義域エラー(domain error occurs)になります。
引数1で指定した数値の文字列表現を,数データ型に変換します。引数2のデータ型がINTEGER又はSMALLINTの場合はINTEGERに,DECIMALの場合は同じ精度・位取りのDECIMALに,FLOAT又はSMALLFLTの場合はFLOATに変換します。
〔MASTER.〕STRTONUM(引数1,引数2)
|
- 引数に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- 文字列定数
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2の値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型は,文字列型(CHAR又はVARCHAR)にしてください。また,引数1の文字列の長さは,255バイト以下にしてください。
- 引数1のデータ型の文字集合はUTF16以外にしてください。引数1に文字集合がUTF16の文字データ型を指定する場合,CAST指定を用いて既定文字集合の文字データ型に変換してください。
- 引数2のデータ型は,数データ型にしてください。
- 結果のデータ型を次の表に示します。
表2-91 システム定義スカラ関数STRTONUMの結果のデータ型
引数2のデータ型 |
結果のデータ型 |
SMALLINT |
INTEGER |
INTEGER |
INTEGER |
DECIMAL(p,s) |
DECIMAL(p,s) |
SMALLFLT |
FLOAT |
FLOAT |
FLOAT |
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1の値式がナル値であれば,結果もナル値になります。引数2の値は,結果に影響しません。
- 引数1の文字列の値は,次の形式で指定してください。
- 引数2のデータ型がINTEGERの場合
〔空白文字…〕〔+|-〕〔空白文字…〕数字…〔空白文字…〕
- 引数2のデータ型がDECIMALの場合
〔空白文字…〕〔+|-〕〔空白文字…〕
{数字…〔.〔数字…〕〕|.数字…}〔空白文字…〕
- 引数2のデータ型がFLOATの場合
〔空白文字…〕〔+|-〕〔空白文字…〕
{数字…〔.〔数字…〕〕|.数字…}
〔{E|e}〔+|-〕数字…〕〔空白文字…〕
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
- 引数2のデータ型がDECIMAL型の場合,データ型の変換で下位のけたがなくなるときは,結果の値は丸められます。
STRTONUMの使用例を次に示します。
・引数2がINTEGERの場合
STRTONUM(' - 1234567 ', 0)
==> -1234567 (INTEGER型)
STRTONUM(' + 1234567890123 ', 0)
==> オーバフロー
STRTONUM(' 1234567.89 ', 9)
==> INTEGERへの変換の,STRTONUM関数の引数1の値が正しくない
・引数2がDECIMALの場合
STRTONUM(' -1234567 ', 123456789012. )
==> -1234567 (DECIMAL(12,0)型)
STRTONUM(' 1234567.89 ', 9999999999.999)
==> 1234567.89 (DECIMAL(13,3)型)
STRTONUM(' 1234567.89 ', 99999.999)
==> オーバフロー
STRTONUM(' 1.23456789E6 ', 9999999999.999)
==> DECIMALへの変換の,STRTONUM関数の引数1の値が正しくない
・引数2がFLOATの場合
STRTONUM(' 1234567.89 ', 1e0)
==> 1.23456789E6 (FLOAT型)
STRTONUM(' -1234567890123 ', 0e0)
==> -1.234567890123E12 (FLOAT型)
STRTONUM(' 1.23456789E6 ', 1E1)
==> 1.23456789E6 (FLOAT型)
STRTONUM(' 1.0E310 ', 9E9)
==> オーバフロー
ラジアンで角度を指定した引数の,正接(三角関数TAN)を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
引数の双曲線正接を返します。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型は数データ型にしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
- 関数の結果が,結果のデータ型で表現できない値ならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
引数2で指定した文字列中のどれかの文字が,引数1で指定した文字列中に含まれる場合,それらの文字を引数3で指定した文字列中の対応する文字に変換した文字列を返します。
引数2の文字列中のi番目の文字が,引数3のi番目の文字に対応します。引数3の文字列の文字数が引数2の文字列の文字数より少ない場合,引数3の文字列として,引数3の文字列に引数4の文字を繰り返し埋めた文字列が仮定されます。
〔MASTER.〕TRANSL(引数1,引数2,引数3〔,引数4〕)
〔MASTER.〕TRANSL_LONG(引数1,引数2,引数3〔,引数4〕)
|
- 引数1,引数2,引数3,及び引数4に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 文字列定数,混在文字列定数,又は各国文字列定数(TRANSL_LONGの場合は混在文字列定数だけ指定できます)
- 列指定
- SQL変数又はSQLパラメタ
- 連結演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数3の文字列の文字数が,引数2の文字列の文字数よりも少ない場合は,引数3の文字列として,引数3の文字列に引数4の文字を繰り返し埋めた文字列が仮定されます。
- 引数4には,1文字だけ指定してください。引数4を省略すると引数1の文字集合の空白文字(引数1のデータ型がNCHAR又はNVARCHARの場合は全角空白)が仮定されます。
- TRANSLに指定可能な引数のデータ型の組合せを次の表に示します。
表2-92 システム定義スカラ関数TRANSLの引数のデータ型の組合せ(引数4を省略する場合)
引数1のデータ型 |
引数2のデータ型 |
引数3のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
表2-93 システム定義スカラ関数TRANSLの引数のデータ型の組合せ(引数4を指定する場合)
引数1のデータ型 |
引数2のデータ型 |
引数3のデータ型 |
引数4のデータ型 |
指定可否 |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
CHAR,又はVARCHAR |
指定可 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
NCHAR,又はNVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- TRANSL_LONGに指定可能な引数のデータ型の組合せを次の表に示します。
表2-94 システム定義スカラ関数TRANSL_LONGの引数のデータ型の組合せ(引数4を省略する場合)
引数1のデータ型 |
引数2のデータ型 |
引数3のデータ型 |
指定可否 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
表2-95 システム定義スカラ関数TRANSL_LONGの引数のデータ型の組合せ(引数4を指定する場合)
引数1のデータ型 |
引数2のデータ型 |
引数3のデータ型 |
引数4のデータ型 |
指定可否 |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
MCHAR,又はMVARCHAR |
指定可 |
上記以外のデータ型の組合せ |
指定不可 |
- TRANSLの引数1,引数2,引数3,及び引数4のすべてのデータ型が文字列型(CHAR又はVARCHAR)の場合,引数に指定する値式の文字集合は同じにしてください。
- 引数2及び引数3の値の最大長を次の表に示します。
表2-96 システム定義スカラ関数TRANSL,TRANSL_LONGの引数2,引数3の最大長
引数1のデータ型 |
引数2及び引数3の最大長 |
CHAR
又は
VARCHAR※ |
既定文字集合,及び文字集合(UTF16以外) |
255 |
文字集合(UTF16) |
510 |
MCHAR又はMVARCHAR |
255 |
NCHAR又はNVARCHAR※ |
127 |
注※ TRANSL_LONGの場合は指定できません。
- 結果のデータ型を次に示します。
表2-97 システム定義スカラ関数TRANSLの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
VARCHAR(n) |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(n) |
NCHAR(n)又はNVARCHAR(n) |
NVARCHAR(n) |
表2-98 システム定義スカラ関数TRANSL_LONGの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
CHAR(n)又はVARCHAR(n) |
指定できません |
MCHAR(n)又はMVARCHAR(n) |
MVARCHAR(32000) |
NCHAR(n)又はNVARCHAR(n) |
指定できません |
- TRANSLの結果のデータ型が文字列型(CHAR又はVARCHAR)の場合,引数1の文字集合が結果の文字集合となります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式のどれかがナル値であれば,結果もナル値になります。
TRANSL,TRANSL_LONGの使用例を次に示します。
TRANSL('data base system', 'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
==> 'DATA BASE SYSTEM' (英小文字から英大文字への文字変換)
TRANSL('<data base> system', '[ ] { } ( ) < >', '')
==> ' data base system'
(引数3は長さ0の文字列で,括弧('[',']','{','}','(',')',
'<','>')から空白への文字変換)
TRANSL('+12345.678', '+-012345678', 'SS', '9')
==> 'S99999.999'
TRANSL (M'data base system',
M'0123456789abcdefghijklmn
opqrstuvwxyz',
M'0123456789abcdefghijklmnopqrstuvwxyz')
==> M'data base system' (全角文字の半角文字への文字変換)
TRANSL_LONG(M'data base system',
M'0123456789abcdefghijklmnopqrstuvwxyz',
M'0123456789abcdefghijklmn
opqrstuvwxyz')
==> M'data base system'
(半角文字の全角文字への文字変換)
TRANSL('+12345.678', '+012345678', '', 'S')
==> 'SSSSSS.SSS'
TRANSL('2000-03-31 12:23:30', '-:', '/.')
==> '2000/03/31 12.23.30'
引数1の値の,小数点数以下のnけたより後のけた(10の−n乗未満のけた)を切り捨てた値を返します。なお,nは引数2で指定した値とします。
〔MASTER.〕TRUNC(引数1〔,引数2〕)
|
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- 数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型は数データ型にしてください。引数2のデータ型は,INTEGER又はSMALLINTにしてください。
- 引数2を省略すると,0が仮定されます。引数2に指定できる値の範囲を次の表に示します。
表2-99 システム定義スカラ関数TRUNCの引数2に指定できる値の範囲
結果のデータ型 |
引数2に指定できる値の範囲 |
INTEGER |
0 〜 9 |
DECIMAL(p, s) |
(p-s-1) 〜 s |
FLOAT |
・HP-UX(32ビットモードの場合)の場合
−307〜307
・HP-UX(64ビットモードの場合),Solaris,AIX,Linux及びWindowsの場合
−307〜323 |
- 結果のデータ型を次の表に示します。
表2-100 システム定義スカラ関数TRUNCの結果のデータ型
引数1のデータ型 |
結果のデータ型 |
SMALLINT |
INTEGER |
INTEGER |
INTEGER |
DECIMAL(p,s) |
DECIMAL(p,s) |
SMALLFLT |
FLOAT |
FLOAT |
FLOAT |
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
引数2で指定した月及び引数3で指定した日を,各年度の開始の月日として,引数1で指定された日付を含む年度の最初の日付を返します。
3月20日締めで年度を求める場合,3月締めで年度を求める場合などに利用できます。
〔MASTER.〕TRUNCYEAR(引数1〔,引数2〔,引数3〕〕)
|
- 引数1,引数2,及び引数3に指定できるものを次に示します。
- 引数1の値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 引数2及び引数3の値式に指定できるものを次に示します。
- 整数定数
- 列指定
- SQL変数又はSQLパラメタ
- 四則演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1のデータ型を,DATE型にしてください。
- 引数2及び引数3のデータ型は,INTEGER又はSMALLINTにしてください。
- 結果のデータ型はDATEになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。どれかの引数の値式がナル値であれば,結果もナル値になります。
- 引数2を省略すると,1が仮定されます。引数2に指定できる値の範囲は,1〜12です。
- 引数3を省略すると,1が仮定されます。引数3に指定できる値の範囲は,引数2の値が2の場合は1〜29です。それ以外の場合は,1〜(引数2で指定した月の最終日)です。
- 結果は,次の規則によって求められます。
- 引数1の月<引数2,又は引数1の月=引数2かつ引数1の日<引数3の場合
結果の年=引数1 の年 − 1
- 引数1の月>引数2,又は引数1の月=引数2かつ引数1の日≧引数3の場合
結果の年=引数1の年
- 結果の年がうるう年でない場合で,引数2=2かつ引数3=29のとき
結果の月=3
結果の日=1
- 結果の年がうるう年の場合で,引数2が2でないとき,又は引数3が29でないとき
結果の月=引数2
結果の日=引数3
- 関数の結果が,0001年01月01日〜9999年12月31日の範囲でないならば,オーバフローエラーになります。なお,オーバフローエラー抑止が設定されている場合の結果については,「2.18 オーバフローエラー抑止が設定されている場合の演算結果」を参照してください。
TRUNCYEARの使用例を次に示します。
TRUNCYEAR(DATE('1999-09-10')) ==> '1999-01-01'
TRUNCYEAR(DATE('1999-09-11'), 4) ==> '1999-04-01'
TRUNCYEAR(DATE('1999-03-31'), 4) ==> '1998-04-01'
TRUNCYEAR(DATE('1999-08-11'), 3, 21) ==> '1999-03-21'
TRUNCYEAR(DATE('1999-03-20'), 3, 21) ==> '1998-03-21'
TRUNCYEAR(DATE('2000-02-28'), 2, 29) ==> '1999-03-01'
('1999-02-29'は存在しません)
TRUNCYEAR(DATE('2000-03-20'), 2, 29) ==> '2000-02-29'
TRUNCYEAR(DATE('0001-03-20'), 4) ==> オーバフロー
引数で指定された日付が,その年の第何週目かを1〜54の整数で返します。各週は,日曜日から始まるものとします。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型はDATEにしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
WEEKの使用例を次に示します。
WEEK(DATE('2000-01-01')) ==> 1
WEEK(DATE('2000-01-02')) ==> 2
WEEK(DATE('2000-02-29')) ==> 10
WEEK(DATE('2000-12-30')) ==> 53
WEEK(DATE('2000-12-31')) ==> 54
'2000-01-01'は土曜日で,'2000-12-31'は日曜日です。
引数で指定された日付が,その月の第何週目かを1〜6の整数で返します。各週は,日曜日から始まるものとします。
- 引数に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数のデータ型はDATEにしてください。
- 結果のデータ型はINTEGERになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数の値式がナル値であれば,結果もナル値になります。
WEEKOFMONTHの使用例を次に示します。
WEEKOFMONTH(DATE('2000-01-01')) ==> 1
WEEKOFMONTH(DATE('2000-01-02')) ==> 2
WEEKOFMONTH(DATE('2000-01-29')) ==> 5
WEEKOFMONTH(DATE('2000-01-30')) ==> 6
'2000-01-01'は土曜日で,'2000-01-30'は日曜日です。
引数で指定した二つの日付間の年数を,実数(FLOAT型)で返します。
〔MASTER.〕YEARS_BETWEEN(引数1,引数2)
|
- 引数1及び引数2に指定できるものを次に示します。
- 値式に指定できるものを次に示します。
- CURRENT_DATE
- 列指定
- SQL変数又はSQLパラメタ
- 日付演算
- 集合関数
- スカラ関数
- 関数呼出し
- CASE式
- CAST指定
- 埋込み変数又は?パラメタ
- スカラ副問合せ
- 値式に埋込み変数又は?パラメタだけを指定する場合は,必ずAS データ型を指定してください。AS データ型を指定した場合,埋込み変数又は?パラメタ以外は指定できません。AS データ型を指定すると,AS句で指定したデータ型のパラメタを持つ関数が呼び出されます。
- 引数1及び引数2のデータ型は,DATEにしてください。
- 結果のデータ型はFLOATになります。
- 結果の値は,非ナル値制約なし(ナル値を許します)になります。引数1又は引数2の値式がナル値であれば,結果もナル値になります。
- YEARS_BETWEEN(日付1,日付2)の結果の月数は,次の規則に従って計算されます。
- 日付1<日付2の場合
結果=−YEARS_BETWEEN(日付2,日付1)
- 日付1≧日付2の場合
yを0以上の整数とし,日付4≦日付1<日付3を満たす(日付2+y年)の日付,及び(日付2+(y+1)年)の日付を,それぞれ日付4及び日付3とします。
日付4と日付1の間の日数(DAYS(日付1)−DAYS(日付4)),及び日付4と日付3の間の日数(DAYS(日付3)−DAYS(日付4))を,それぞれd1及びd2とします。d2の値は,365又は366のどちらかになります。
結果の年数は,(y+d1÷d2)年になります。
日付1,日付2,日付3,及び日付4の関係を次の図に示します。
図2-8 日付1,日付2,日付3,及び日付4の関係(YEARS_BETWEEN)
![[図データ]](FIGURE/ZU2S0460.GIF)
YEARS_BETWEENの使用例を次に示します。
YEARS_BETWEEN(DATE('2000-06-10'),DATE('1999-06-10'))==> 1
YEARS_BETWEEN(DATE('2000-06-11'),DATE('1999-06-10'))==> 1.002739...
YEARS_BETWEEN(DATE('1999-06-11'),DATE('1998-06-10'))==> 1.002732...
YEARS_BETWEEN(DATE('2014-09-09'),DATE('1999-06-10'))==> 15.249315...
YEARS_BETWEEN(DATE('1999-06-10'),DATE('2014-09-09'))==> -15.249315...
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.