機能
数値関数は、数値型の値となる関数です。
関数 | 機能 |
---|---|
POSITION式は、POSITIONまたはOCTET_POSITIONを指定して、1番目の文字値式の文字列を持つ2番目の文字値式中の文字の開始位置を求めます。 | |
EXTRACT式は、抜き出し元の日時値式および時間隔値式から、抜き出しフィールドで指定された日時フィールドに相当する部分を抽出します。 | |
LENGTH式は、データ列値式の文字数またはバイト数を求めます。 | |
ABS式は、指定した数値式の絶対値を求めます。 | |
CEIL式は、指定した数値式以上の最小整数値を求めます。 | |
FLOOR式は、指定した数値式以下の最大整数値を求めます。 | |
ROUND式は、数値式を丸め位置で四捨五入します。 | |
TRUNC式は、数値式を切捨て位置で切り捨てます。 | |
2つの日付間の時間隔を、指定した時間隔の単位で返却します。 | |
ACOS関数は、数値式のアークコサイン(逆余弦)を求めます。 | |
ASIN関数は、数値式のアークサイン(逆正弦)を求めます。 | |
ATAN関数は、数値式のアークタンジェント(逆正接)を求めます。 | |
ATAN2関数は、数値式1、数値式2のアークタンジェント(逆正接)を求めます。 | |
COS関数は、数値式のコサイン(余弦)を求めます。 | |
EXP関数は、数値式の指数関数値を求めます。 | |
LN関数は、数値式の自然対数を求めます。 | |
POWER関数は、数値式の指定された累乗値を求めます。 | |
SIGN関数は、数値式の符号の標識を返却します。 | |
SIN関数は、数値式のサイン(正弦)を求めます。 | |
SQRT関数は、数値式の平方根を求めます。 | |
TAN関数は、数値式のタンジェント(正接)を求めます。 | |
ASCII関数は、文字値式の左端の1バイトのASCIIコードを返却します。 |
記述形式
参照項番
文字値式 → “2.11.2 データ列値式”
日時値式 → “2.11.3 日時値式”
時間隔値式 → “2.11.4 時間隔値式”
数値式 → “2.11.1 数値式”
一般規則
文字値式2が文字値式1の文字列を含まないならば、結果は0になります。
文字値式1の文字列長が0ならば、POSITION式の結果は1となります。
数値式には文字値式2の文字列中から文字値式1の文字列の検索を開始する位置を指定します。数値式を省略した場合、または負の値が指定された場合は文字値式2の先頭から検索が行われます。また数値式は整数でなければなりません。
数値式がNULLならば、POSITION式の結果はNULLになります。
POSITIONを指定した場合、数値式には文字値式2の文字列中から文字値式1の文字列の検索を開始する位置を、文字値式2の文字列の先頭からの文字数で指定します。また式の結果は文字数で返されます。
OCTET_POSITIONを指定した場合、数値式には文字値式2の文字列中から文字値式1の文字列の検索を開始する位置を、文字値式2の文字列の先頭からのバイト数で指定します。また式の結果はバイト数で返されます。
POSITION式の文字値式1または文字値式2に動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。SQL記述子域のTYPEにVARCHARやNCHAR VARYINGの情報が設定されます。SQL記述子域のLENGTHにVARCHARやNCHAR VARYINGの最大文字数が設定されます。
文字値式1または文字値式2のデータ型 | DESCRIBE情報 |
---|---|
CHAR(n) | VARCHAR(Nvc) |
VARCHAR(n) | VARCHAR(Nvc) |
NCHAR(n) | NCHAR VARYING(Nvn) |
NCHAR VARYING(n) | NCHAR VARYING(Nvn) |
Nvc:VARCHARのデータの最大長
Nvn:NCHAR VARYINGのデータの最大長
文字値式1と文字値式2の両方が動的パラメタ指定の場合はエラーになります。
文字値式1または文字値式2がNULLならば、結果もNULLになります。POSITION式の結果のデータ型を以下に示します。
文字値式1または文字値式2のデータ型 | 結果のデータ型 |
---|---|
CHAR(n) | SMALLINT |
VARCHAR(n) | SMALLINT |
NCHAR(n) | SMALLINT |
NCHAR VARYING(n) | SMALLINT |
その他 | エラー |
POSITION式の数値式に動的パラメタ指定が指定された場合のDESCRIBE情報はINTEGER型になります。
POSITION式
POSITION('F' IN 'OFFICE') →結果は2になります。 POSITION('F' IN 'OFFICE', 3 ) →結果は3になります。 POSITION('C' IN 'JAVA') →結果は0になります。 POSITION('' IN 'ABC') →結果は1になります。 POSITION('A' IN 'あいうAB') →結果は4になります。 OCTET_POSITION('A' IN 'あいうAB') →結果は7になります。(データベースの文字コード系がEUCコードまたはシフトJISコードの場合) OCTET_POSITION('A' IN 'あいうAB') →結果は10になります。(データベースの文字コード系がUNICODEの場合)
EXTRACT式は、抜き出し元の日時値式および時間隔値式から、抜き出しフィールドで指定された日時フィールドに相当する部分を抽出します。
EXTRACT式の結果のデータ型は、INTEGER型になります。
抜き出し元が時間隔型で負の値ならば、EXTRACT式の結果は負数になります。
EXTRACT式に動的パラメタ指定が指定された場合は、エラーになります。
EXTRACT式
EXTRACT(YEAR FROM DATE'2007-08-23') →結果は2007になります。
CHARACTER LENGTH式は、データ列値式の文字数を求めます。ただし、データ列値式に列指定を指定した場合、CHARACTER LENGTH式の結果は列の定義長に等しくなります。
LENGTH式に動的パラメタ指定が指定された場合は、エラーになります。
データ列値式がNULLならば、結果もNULLになります。LENGTH式の結果のデータ型を以下に示します。
文字値式のデータ型 | 結果のデータ型 |
---|---|
CHAR(n) | SMALLINT |
VARCHAR(n) | SMALLINT |
NCHAR(n) | SMALLINT |
NCHAR VARYING(n) | SMALLINT |
その他 | エラー |
LENGTH式
CHAR_LENGTH('ABあいう') →結果は5になります。 OCTET_LENGTH('ABあいう') →結果は8になります。(データベースの文字コード系がEUCコードまたはシフトJISコードの場合) OCTET_LENGTH('ABあいう') →結果は11になります。(データベースの文字コード系がUNICODEの場合)
ABS式は、指定した数値式の絶対値を求めます。
数値式がNULLの場合は、ABS式の結果はNULLとなります。
ABS式の結果のデータ型は、数値式のデータ型と同じです。
数値式のデータ型がSMALLINTまたはINTEGERで、負の最大値を指定した場合、結果となる正の値はSMALLINTまたはINTEGERで表現することができません。このような指定をした場合は、エラーとなりますので注意が必要です。以下の場合がエラーとなります。
数値式のデータ型 | 指定した値 |
---|---|
SMALLINT | -32768 |
INTEGER | -2147483648 |
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、INTEGER型になります。
ABS式
ABS(123) →結果は123になります。 ABS(123.45) →結果は123.45になります。 ABS(-123.45) →結果は123.45になります。 ABS(-123.45E6) →結果は123.45E6になります。
CEIL式は、指定した数値式以上の最小整数値を求めます。
数値式がNULLの場合は、CEIL式の結果はNULLとなります。
数値式の値が負数の場合、0に近い側の整数値が結果となります。
CEIL式に動的パラメタ指定が指定された場合はエラーになります。
CEIL式の結果のデータ型は次のようになります。
数値式のデータ型 | CEIL式の結果のデータ型 |
---|---|
SMALLINT | SMALLINT |
INTEGER | INTEGER |
DECIMAL(p,q) | DECIMAL(p1,q) p1=MIN(18,p+1) |
NUMERIC(p,q) | NUMERIC(p1,q) p1=MIN(18,p+1) |
FLOAT(p) | FLOAT(p) |
REAL | REAL |
DOUBLE PRECISION | DOUBLE PRECISION |
CEIL式
CEIL(123) →結果は123になります。 CEIL(123.45) →結果は124.00になります。 CEIL(-123.45) →結果は-123.00になります。 CEIL(-1.2345E2) →結果は-1.2300E2になります。 CEIL(0.5) →結果は1.0になります。 CEIL(-0.5) →結果は0になります。
FLOOR式は、指定した数値式以下の最大整数値を求めます。
数値式がNULLの場合は、FLOOR式の結果はNULLとなります。
数値式の値が負数の場合、0より遠い側の整数値が結果となります。
FLOOR式に動的パラメタ指定が指定された場合はエラーになります。
FLOOR式の結果のデータ型は次のようになります。
数値式のデータ型 | FLOOR式の結果のデータ型 |
---|---|
SMALLINT | SMALLINT |
INTEGER | INTEGER |
DECIMAL(p,q) | DECIMAL(p1,q) p1=MIN(18,p+1) |
NUMERIC(p,q) | NUMERIC(p1,q) p1=MIN(18,p+1) |
FLOAT(p) | FLOAT(p) |
REAL | REAL |
DOUBLE PRECISION | DOUBLE PRECISION |
FLOOR式
FLOOR(123) →結果は123になります。 FLOOR(123.45) →結果は123.00になります。 FLOOR(-123.45) →結果は-124.00になります。 FLOOR(-1.2345E2) →結果は-1.2400E2になります。 FLOOR(0.5) →結果は0.0になります。 FLOOR(-0.5) →結果は-1.0になります。
丸め位置は数値式です。丸め位置には、小数点位置を起点とした有効桁(丸め位置)を指定します。また、-18から+18の範囲の整数値に変換できる値を指定します。丸め位置は、INTEGER型に変換されます。
丸め位置を省略した場合は、0を指定したと見なします。
数値式または丸め位置がNULLの場合、ROUND式の結果はNULLとなります。
数値式のデータ型がSMALLINTまたはINTEGERの場合、四捨五入した結果がSMALLINTまたはINTEGERで表現できない値になった場合はエラーとなります。
数値式の値が負の数の場合は、数値式の値を絶対値にしてROUND式で求めた値の符号を反転させた結果と同一です。
ROUND(-n) = -ROUND(n) (nは任意の正の数)
ROUND式の結果のデータ型は次のようになります。
数値式のデータ型 | ROUND式の結果のデータ型 |
---|---|
SMALLINT | SMALLINT |
INTEGER | INTEGER |
DECIMAL(p,q) | DECIMAL(p1,q1) p1=MIN(18,p+1) q1=q |
NUMERIC(p,q) | NUMERIC(p1,q1) p1=MIN(18,p+1) q1=q |
FLOAT(p) | FLOAT(p) |
REAL | REAL |
DOUBLE PRECISION | DOUBLE PRECISION |
ROUND式の各オペランドに動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。
オペランド | DESCRIBE情報 |
---|---|
数値式 | INTEGER |
丸め位置 | INTEGER |
ROUND式
ROUND(3456.3456) →結果は3456.0000になります。 ROUND(3456.3456,2) →結果は3456.3500になります。 ROUND(3456.3546,-3) →結果は3000.0000になります。 ROUND(3.456E-1,2) →結果は3.500E-1になります。 ROUND(0.5) →結果は1.0になります。 ROUND(-0.5) →結果は-1.0になります。 ROUND(0.4) →結果は0.0になります。 ROUND(-0.4) →結果は0.0になります。
TRUNC式は、数値式を切捨て位置で切り捨てます。
切捨て位置は数値式です。切捨て位置は、小数点位置を起点とした有効桁を指定します。また、-18から+18の範囲の整数値に変換できる値を指定します。切捨て位置は、INTEGER型に変換されます。
引数に数値式以外を指定すると、エラーとなります。
切捨て位置を省略した場合は、0を指定したと見なします。
数値式または切捨て位置がNULLの場合、TRUNC式の結果はNULLとなります。
数値式の値が負数の場合は、数値式の値を絶対値にしてTRUNC式で求めた値の符号を反転させた結果と同一です。
TRUNC(-n) = -TRUNC(n) (nは任意の正の数)
TRUNC式の結果のデータ型は数値式のデータ型と同一になります。
TRUNC式の各オペランドに動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。
オペランド | DESCRIBE情報 |
---|---|
数値式 | INTEGER |
切捨て位置 | INTEGER |
TRUNC式
TRUNC(3456.3456) →結果は3456.0000になります。 TRUNC(3456.3456,2) →結果は3456.3400になります。 TRUNC(3456.3546,-3) →結果は3000.0000になります。 TRUNC(3.456E-1,2) →結果は3.400E-1になります。 TRUNC(0.4) →結果は0.0になります。 TRUNC(-0.4) →結果は0.0になります。 TRUNC(0.5) →結果は0.0になります。 TRUNC(-0.5) →結果は0.0になります。
SPAN_DATE関数は、2つの日付間の時間隔を、指定した時間隔の単位で返却します。
SPAN_DATE関数は、日付2-日付1の結果を返却します。日付1が日付2よりも新しい場合は、実行結果は負数となります。
日付1、日付2は日時値式です。データ型はDATE型に代入可能でなければなりません。
日付1または日付2がNULL値である場合、SPAN_DATE関数の結果はNULLとなります。
SPAN_DATE関数の結果のデータ型はINTEGER型です。
時間隔の単位は、文字列型の値指定です。日付間の時間隔を求める単位を指定します。時間隔の単位に指定できる値とSPAN_DATE関数の結果は、以下のようになります。
時間隔の単位 | SPAN_DATE関数の結果 |
---|---|
YEAR | 日付間の年の変わる回数を返却します。 |
MONTH | 日付間の月の変わる回数を返却します。 |
DAY | 日付間の日の変わる回数を返却します。 |
SPAN_DATE関数の各オペランドに動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。
オペランド | DESCRIBE情報 |
---|---|
日付1 | DATE |
日付2 | DATE |
時間隔の単位 | CHAR(5) |
SPAN_DATE関数
SPAN_DATE(DATE'2006-08-01',DATE'2007-09-20','YEAR')→1になります。 SPAN_DATE(CURRENT_DATE,DATE'2007-11-10','MONTH')→3になります。 現在の日付を2007-08-22とします。 SPAN_DATE(DATE'2007-09-10',DATE'2007-08-22','DAY')→-19になります。
ACOS関数は、数値式のアークコサイン(逆余弦)を求めます。
数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
ACOS関数の結果は0~π(ラジアン単位)の範囲です(π:円周率)。
数値式の有効な範囲は-1~1です。この範囲外の数値式を指定するとエラーとなります。
数値式がNULLの場合は、ACOS関数の結果はNULLとなります。
ACOS関数の結果のデータ型はDOUBLE PRECISION型です。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。
ACOS関数
ACOS(-1.0) →結果は3.141593E+00になります。
ASIN関数は、数値式のアークサイン(逆正弦)を求めます。
数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
ASIN関数の結果は-π/2~π/2(ラジアン単位)の範囲です(π:円周率)。
数値式の有効な範囲は-1~1です。この範囲外の数値式を指定するとエラーとなります。
数値式がNULLの場合は、ASIN関数の結果はNULLとなります。
ASIN関数の結果のデータ型はDOUBLE PRECISION型です。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。
ASIN関数
ASIN(1.0) →結果は1.570796E+00になります。
ATAN関数は、数値式のアークタンジェント(逆正接)を求めます。
数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
ATAN関数の結果は-π/2~π/2(ラジアン単位)の範囲です(π:円周率)。
数値式がNULLの場合は、ATAN関数の結果はNULLとなります。
ATAN関数の結果のデータ型はDOUBLE PRECISION型です。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。
ATAN関数
ATAN(1.0) →結果は7.853982E-01になります。
ATAN2関数は、数値式1を数値式2で除算した値のアークタンジェント(逆正接)を求めます。
ATAN2関数とATAN関数の関係を以下に示します。
数値式1の値 | 数値式2の値 | ATAN2関数の演算結果 |
---|---|---|
n1 >= 0 | n2 > 0 | ATAN(n1/n2) |
n1 >= 0 | n2 < 0 | ATAN(n1/n2) + π |
n1 < 0 | n2 > 0 | ATAN(n1/n2) |
n1 < 0 | n2 < 0 | ATAN(n1/n2) - π |
n1 > 0 | n2 = 0 | π/2 |
n1 < 0 | n2 = 0 | -π/2 |
n1 = 0 | n2 = 0 | エラーが発生します |
数値式1と数値式2には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
ATAN2関数の結果は-π~π(ラジアン単位)の範囲です(π:円周率)。
数値式1と数値式2がNULLの場合、またはどちらかがNULLの場合はATAN2関数の結果はNULLとなります。
ATAN2関数の結果のデータ型はDOUBLE PRECISION型です。
ATAN2関数の各オペランドに動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。
オペランド | DESCRIBE情報 |
---|---|
数値式1 | DOUBLE PRECISION |
数値式2 | DOUBLE PRECISION |
ATAN2関数
ATAN2(1.0,2.0) →結果は4.636476E-01になります。
COS関数は、数値式(ラジアン単位)のコサイン(余弦)を求めます。
数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
数値式の有効な範囲は、-3.53E+15より大きく、+3.53E+15未満です。この範囲外の数値式を指定するとエラーとなります。
COS関数の結果は-1~1の範囲です。
数値式がNULLの場合は、COS関数の結果はNULLとなります。
COS関数の結果のデータ型はDOUBLE PRECISION型です。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。
COS関数
COS(3.141592654) →結果は-1.000000E+00になります。
EXP関数は、数値式の指数関数値を求めます。
数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
演算結果がDOUBLE PRECISION型の最大値を超えた場合、エラーが発生します。
数値式がNULLの場合は、EXP関数の結果はNULLとなります。
EXP関数の結果のデータ型はDOUBLE PRECISION型です。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。
EXP関数
EXP(10) →結果は2.202647E+04になります。
LN関数は、数値式の自然対数を求めます。
数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
数値式の有効な範囲は正の値です。この範囲外の数値式を指定するとエラーとなります。
演算結果がDOUBLE PRECISION型の最小値より小さい場合、または、最大値を超えた場合、エラーが発生します。
数値式がNULLの場合は、LN関数の結果はNULLとなります。
LN関数の結果のデータ型はDOUBLE PRECISION型です。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。
LN関数
LN(15) →結果は2.708050E+00になります。
POWER関数は、数値式1を数値式2の値分累乗した値を求めます。
数値式1と数値式2には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
演算結果がDOUBLE PRECISION型の最小値より小さい場合、または、最大値を超えた場合、エラーが発生します。
数値式1が負の値の場合、数値式2は整数でなければなりません。
数値式1が0の場合、数値式2は0または正の値でなければなりません。
数値式1と数値式2がともにNULLの場合、またはどちらかがNULLの場合は、POWER関数の結果はNULLとなります。
POWER関数の各オペランドに動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。
オペランド | DESCRIBE情報 |
---|---|
数値式1 | DOUBLE PRECISION |
数値式2 | DOUBLE PRECISION |
POWER関数の結果のデータ型はDOUBLE PRECISION型です。
POWER関数
POWER(2,3) →結果は8.000000E+00になります。
SIGN関数は、数値式の符号の標識を返却します。
数値式が負の値の場合は-1が返されます。0の場合は0が返されます。正の値の場合は1が返されます。
数値式がNULLの場合は、SIGN関数の結果はNULLとなります。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、INTEGER型になります。
SIGN関数の結果のデータ型を以下に示します。
数値式のデータ型 | SIGN関数の結果のデータ型 |
---|---|
SMALLINT | SMALLINT |
INTEGER | INTEGER |
DECIMAL(p,q) | DECIMAL(1,0) |
NUMERIC(p,q) | NUMERIC(1,0) |
FLOAT(p) | FLOAT(p) |
REAL | REAL |
DOUBLE PRECISION | DOUBLE PRECISION |
SIGN関数
SIGN(-15) →結果は-1になります。
SIN関数は、数値式(ラジアン単位)のサイン(正弦)を求めます。
数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
数値式の有効な範囲は、-3.53E+15より大きく、+3.53E+15未満です。この範囲外の数値式を指定するとエラーとなります。
SIN関数の結果は-1~1の範囲です。
数値式がNULLの場合は、SIN関数の結果はNULLとなります。
SIN関数の結果のデータ型はDOUBLE PRECISION型です。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。
SIN関数
SIN(3.141592654) →結果は-4.102069E-10になります。
SQRT関数は、数値式の平方根を求めます。
数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
数値式は0以上でなければなりません。
数値式がNULLの場合は、SQRT関数の結果はNULLとなります。
SQRT関数の結果のデータ型はDOUBLE PRECISION型です。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。
SQRT関数
SQRT(9) →結果は3.000000E+00になります。
TAN関数は、数値式(ラジアン単位)のタンジェント(正接)を求めます。
数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。
数値式の有効な範囲は、-3.53E+15より大きく、+3.53E+15未満です。この範囲外の数値式を指定するとエラーとなります。
演算結果がDOUBLE PRECISION型の最小値より小さい場合、または、最大値を超えた場合、エラーが発生します。
数値式がNULLの場合は、TAN関数の結果はNULLとなります。
TAN関数の結果のデータ型はDOUBLE PRECISION型です。
数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。
TAN関数
TAN(3.141592654) →結果は4.102069E-10になります。
ASCII関数は、文字値式の左端の1バイトのASCIIコードを返却します。
文字値式がNULLの場合は、ASCII関数の結果はNULLとなります。
ASCII関数の結果のデータ型はINTEGER型です。
ASCII関数に動的パラメタ指定が指定された場合は、エラーになります。
ASCII関数
ASCII('A') →結果は65になります。
備考.データベースの文字コード系がシフトJISコードの場合の例です。データベースの文字コード系により結果は異なることがあります。
注意
文字値式にマルチバイト文字を指定した場合、マルチバイト文字の先頭の1バイトの文字コードが返却されるため、文字値式へのマルチバイト文字の指定は推奨しません。
使用例
POSITION式(N1が'アダム電気'の場合。なお、N1のデータ型は各国語文字列型とします。)
SELECT POSITION(N'電気' IN N1) INTO :POS1 FROM S1.T1 →結果は4になります。
POSITION式(C1が'ADAM電気(株)'の場合。なお、C1のデータ型は文字列型とします。ADAMは、1バイトの英数字です。)
SELECT POSITION('(株)' IN C1) INTO :POS1 FROM S1.T1 →結果は7になります。
EXTRACT式(C1がDATE型で、'2007-04-17'の場合)
SELECT EXTRACT(DAY FROM C1) INTO :DAY1 FROM S1.T1 →結果は17になります。
LENGTH式(N1が'アダム電気'の場合。なお、N1のデータ型は各国語文字列型とします。)
SELECT CHAR_LENGTH(N1) INTO :LEN1 FROM S1.T1 →結果は5になります。
LENGTH式(C1が'ADAM電気(株)'の場合。なお、C1のデータ型は文字列型とします。ADAMは1バイトの英数字です。)
SELECT CHAR_LENGTH(C1) INTO :LEN1 FROM S1.T1 →結果は9になります。
ABS式(最低気温が-38.45の場合の絶対値を求めます。)
SELECT 地区コード , ABS(最低気温) FROM 気象情報管理表 →結果は38.45 になります。
CEIL式(最高気温が27.255で最低気温が-21.235をその値以上の最小整数値にします。)
SELECT 地区名, CEIL(最高気温), CEIL(最低気温) FROM 気象情報管理表 →結果は、最高気温が28.000で最低気温が-21.000になります。
FLOOR式(最高気温が27.255で、最低気温が-21.235をその値以下の最大整数値にします。)
SELECT 地区名, FLOOR(最高気温), FLOOR(最低気温) FROM 気象情報管理表 →結果は、最高気温が27.000で最低気温が-22.000になります。
ROUND式(最高気温が27.255を小数第2位で四捨五入します。)
SELECT 地区名, ROUND(最高気温, 1) FROM 気象情報管理表 →結果は、最高気温が27.300になります。
TRUNC式(最高気温が27.255を小数第2位で切捨てます。)
SELECT 地区名, TRUNC(最高気温, 1) FROM 気象情報管理表 →結果は、最高気温が27.200になります。
SPAN_DATE関数(発注日“2007-04-01”から現在の日付“2007-04-10”までの経過日数を求めます。)
SELECT 発注番号,SPAN_DATE(CURRENT_DATE,発注日,'DAY') AS 経過日数 FROM 発注表 WHERE 納品日 IS NULL ORDER BY 経過日数 →結果は、経過日数が9になります。
算術関数(C1の値が1.0である場合)
SELECT ACOS( C1 ) FROM T →0.000000E+00が返されます。 SELECT ASIN( C1 ) FROM T →1.570796E+00が返されます。 SELECT ATAN( C1 ) FROM T →7.853982E-01が返されます。 SELECT COS( C1 ) FROM T →5.403023E-01が返されます。 SELECT SIN( C1 ) FROM T →8.414710E-01が返されます。 SELECT TAN( C1 ) FROM T →1.557408E+00が返されます。 SELECT LN( C1 ) FROM T →0.000000E+00が返されます。 SELECT EXP( C1 ) FROM T →2.718282E+00が返されます。 SELECT SIGN( C1 ) FROM T →+1.が返されます。 SELECT SQRT( C1 ) FROM T →1.000000E+00が返されます。
算術関数(C1の値が2、C2の値が3である場合)
SELECT POWER( C1, C2 ) FROM T →8.000000E+00が返されます。
ASCII関数('A'で始まる名前の従業員の数を求めます。)
SELECT COUNT(*) FROM 従業員表 WHERE ASCII(SUBSTRING(名前 FROM 1 FOR 1)) = 65 →'A'で始まる名前が5件の場合、結果は5になります。