ページの先頭行へ戻る
Symfoware Server V11.0.x SQLリファレンス
Symfoware

2.5.2 数値関数

機能

数値関数は、数値型の値となる関数です。

関数

機能

POSITION式

POSITION式は、POSITIONまたはOCTET_POSITIONを指定して、1番目の文字値式の文字列を持つ2番目の文字値式中の文字の開始位置を求めます。

EXTRACT式

EXTRACT式は、抜き出し元の日時値式および時間隔値式から、抜き出しフィールドで指定された日時フィールドに相当する部分を抽出します。

LENGTH式

LENGTH式は、データ列値式の文字数またはバイト数を求めます。

ABS式

ABS式は、指定した数値式の絶対値を求めます。

CEIL式

CEIL式は、指定した数値式以上の最小整数値を求めます。

FLOOR式

FLOOR式は、指定した数値式以下の最大整数値を求めます。

ROUND式

ROUND式は、数値式を丸め位置で四捨五入します。

TRUNC式

TRUNC式は、数値式を切捨て位置で切り捨てます。

SPAN_DATE関数

2つの日付間の時間隔を、指定した時間隔の単位で返却します。

ACOS関数

ACOS関数は、数値式のアークコサイン(逆余弦)を求めます。

ASIN関数

ASIN関数は、数値式のアークサイン(逆正弦)を求めます。

ATAN関数

ATAN関数は、数値式のアークタンジェント(逆正接)を求めます。

ATAN2関数

ATAN2関数は、数値式1、数値式2のアークタンジェント(逆正接)を求めます。

COS関数

COS関数は、数値式のコサイン(余弦)を求めます。

EXP関数

EXP関数は、数値式の指数関数値を求めます。

LN関数

LN関数は、数値式の自然対数を求めます。

POWER関数

POWER関数は、数値式の指定された累乗値を求めます。

SIGN関数

SIGN関数は、数値式の符号の標識を返却します。

SIN関数

SIN関数は、数値式のサイン(正弦)を求めます。

SQRT関数

SQRT関数は、数値式の平方根を求めます。

TAN関数

TAN関数は、数値式のタンジェント(正接)を求めます。

ASCII関数

ASCII関数は、文字値式の左端の1バイトのASCIIコードを返却します。

記述形式

構文要素の構成

参照項番

一般規則

POSITION
  • POSITION式は、文字値式1の文字列を持つ文字値式2中の文字の開始位置を求めます。

  • 文字値式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の最大文字数が設定されます。

    表2.18 動的パラメタ指定が指定された場合のDESCRIBE情報

    文字値式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式の結果のデータ型を以下に示します。

    表2.19 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式は、抜き出し元の日時値式および時間隔値式から、抜き出しフィールドで指定された日時フィールドに相当する部分を抽出します。

  • EXTRACT式の結果のデータ型は、INTEGER型になります。

  • 抜き出し元がNULLならば、EXTRACT式の結果はNULLになります。

  • 抜き出し元が時間隔型で負の値ならば、EXTRACT式の結果は負数になります。

  • EXTRACT式に動的パラメタ指定が指定された場合は、エラーになります。

EXTRACT式

EXTRACT(YEAR FROM DATE'2007-08-23') →結果は2007になります。
LENGTH
  • CHARACTER LENGTH式は、データ列値式の文字数を求めます。ただし、データ列値式に列指定を指定した場合、CHARACTER LENGTH式の結果は列の定義長に等しくなります。

  • OCTET LENGTH式は、データ列値式のバイト数を求めます。

  • CHARACTER_LENGTHとCHAR_LENGTHは同じ意味です。

  • LENGTH式に動的パラメタ指定が指定された場合は、エラーになります。

  • データ列値式がNULLならば、結果もNULLになります。LENGTH式の結果のデータ型を以下に示します。

    表2.20 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
  • 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
  • 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
  • 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になります。
ROUND
  • ROUND式は、数値式を丸め位置で四捨五入します。

  • 丸め位置は数値式です。丸め位置には、小数点位置を起点とした有効桁(丸め位置)を指定します。また、-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情報を以下に示します。

    表2.21 動的パラメタ指定が指定された場合の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
  • TRUNC式は、数値式を切捨て位置で切り捨てます。

  • 切捨て位置は数値式です。切捨て位置は、小数点位置を起点とした有効桁を指定します。また、-18から+18の範囲の整数値に変換できる値を指定します。切捨て位置は、INTEGER型に変換されます。

  • 引数に数値式以外を指定すると、エラーとなります。

  • 切捨て位置を省略した場合は、0を指定したと見なします。

  • 数値式または切捨て位置がNULLの場合、TRUNC式の結果はNULLとなります。

  • 数値式の値が負数の場合は、数値式の値を絶対値にしてTRUNC式で求めた値の符号を反転させた結果と同一です。

    TRUNC(-n) = -TRUNC(n) (nは任意の正の数)
  • TRUNC式の結果のデータ型は数値式のデータ型と同一になります。

  • TRUNC式の各オペランドに動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。

    表2.22 動的パラメタ指定が指定された場合の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関数
  • 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情報を以下に示します。

    表2.23 動的パラメタ指定が指定された場合の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関数
  • ACOS関数は、数値式のアークコサイン(逆余弦)を求めます。

  • 数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。

  • ACOS関数の結果は0~π(ラジアン単位)の範囲です(π:円周率)。

  • 数値式の有効な範囲は-1~1です。この範囲外の数値式を指定するとエラーとなります。

  • 数値式がNULLの場合は、ACOS関数の結果はNULLとなります。

  • ACOS関数の結果のデータ型はDOUBLE PRECISION型です。

  • 数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。

ACOS関数

ACOS(-1.0) →結果は3.141593E+00になります。
ASIN関数
  • 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関数
  • ATAN関数は、数値式のアークタンジェント(逆正接)を求めます。

  • 数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。

  • ATAN関数の結果は-π/2~π/2(ラジアン単位)の範囲です(π:円周率)。

  • 数値式がNULLの場合は、ATAN関数の結果はNULLとなります。

  • ATAN関数の結果のデータ型はDOUBLE PRECISION型です。

  • 数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。

ATAN関数

ATAN(1.0) →結果は7.853982E-01になります。
ATAN2関数
  • 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情報を以下に示します。

    表2.24 動的パラメタ指定が指定された場合のDESCRIBE情報

    オペランド

    DESCRIBE情報

    数値式1

    DOUBLE PRECISION

    数値式2

    DOUBLE PRECISION

ATAN2関数

ATAN2(1.0,2.0) →結果は4.636476E-01になります。
COS関数
  • 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関数
  • EXP関数は、数値式の指数関数値を求めます。

  • 数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。

  • 演算結果がDOUBLE PRECISION型の最大値を超えた場合、エラーが発生します。

  • 数値式がNULLの場合は、EXP関数の結果はNULLとなります。

  • EXP関数の結果のデータ型はDOUBLE PRECISION型です。

  • 数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。

EXP関数

EXP(10) →結果は2.202647E+04になります。
LN関数
  • LN関数は、数値式の自然対数を求めます。

  • 数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。

  • 数値式の有効な範囲は正の値です。この範囲外の数値式を指定するとエラーとなります。

  • 演算結果がDOUBLE PRECISION型の最小値より小さい場合、または、最大値を超えた場合、エラーが発生します。

  • 数値式がNULLの場合は、LN関数の結果はNULLとなります。

  • LN関数の結果のデータ型はDOUBLE PRECISION型です。

  • 数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。

LN関数

LN(15) →結果は2.708050E+00になります。
POWER関数
  • POWER関数は、数値式1を数値式2の値分累乗した値を求めます。

  • 数値式1と数値式2には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。

  • 演算結果がDOUBLE PRECISION型の最小値より小さい場合、または、最大値を超えた場合、エラーが発生します。

  • 数値式1が負の値の場合、数値式2は整数でなければなりません。

  • 数値式1が0の場合、数値式2は0または正の値でなければなりません。

  • 数値式1と数値式2がともにNULLの場合、またはどちらかがNULLの場合は、POWER関数の結果はNULLとなります。

  • POWER関数の各オペランドに動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。

    表2.25 動的パラメタ指定が指定された場合のDESCRIBE情報

    オペランド

    DESCRIBE情報

    数値式1

    DOUBLE PRECISION

    数値式2

    DOUBLE PRECISION

  • POWER関数の結果のデータ型はDOUBLE PRECISION型です。

POWER関数

POWER(2,3) →結果は8.000000E+00になります。
SIGN関数
  • 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関数
  • 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関数
  • SQRT関数は、数値式の平方根を求めます。

  • 数値式には真数型・概数型が指定可能です。データ型はDOUBLE PRECISION型に代入可能でなければなりません。

  • 数値式は0以上でなければなりません。

  • 数値式がNULLの場合は、SQRT関数の結果はNULLとなります。

  • SQRT関数の結果のデータ型はDOUBLE PRECISION型です。

  • 数値式に動的パラメタ指定が指定された場合のDESCRIBE情報は、DOUBLE PRECISION型になります。

SQRT関数

SQRT(9) →結果は3.000000E+00になります。
TAN関数
  • 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関数
  • ASCII関数は、文字値式の左端の1バイトのASCIIコードを返却します。

  • 文字値式がNULLの場合は、ASCII関数の結果はNULLとなります。

  • ASCII関数の結果のデータ型はINTEGER型です。

  • ASCII関数に動的パラメタ指定が指定された場合は、エラーになります。

ASCII関数

ASCII('A')  →結果は65になります。

備考.データベースの文字コード系がシフトJISコードの場合の例です。データベースの文字コード系により結果は異なることがあります。

注意

文字値式にマルチバイト文字を指定した場合、マルチバイト文字の先頭の1バイトの文字コードが返却されるため、文字値式へのマルチバイト文字の指定は推奨しません。

使用例

1

POSITION式(N1が'アダム電気'の場合。なお、N1のデータ型は各国語文字列型とします。)

SELECT POSITION(N'電気' IN N1) INTO :POS1 FROM S1.T1
→結果は4になります。

2

POSITION式(C1が'ADAM電気(株)'の場合。なお、C1のデータ型は文字列型とします。ADAMは、1バイトの英数字です。)

SELECT POSITION('(株)' IN C1) INTO :POS1 FROM S1.T1
→結果は7になります。

3

EXTRACT式(C1がDATE型で、'2007-04-17'の場合)

SELECT EXTRACT(DAY FROM C1) INTO :DAY1 FROM S1.T1
→結果は17になります。

4

LENGTH式(N1が'アダム電気'の場合。なお、N1のデータ型は各国語文字列型とします。)

SELECT CHAR_LENGTH(N1) INTO :LEN1 FROM S1.T1
→結果は5になります。

5

LENGTH式(C1が'ADAM電気(株)'の場合。なお、C1のデータ型は文字列型とします。ADAMは1バイトの英数字です。)

SELECT CHAR_LENGTH(C1) INTO :LEN1 FROM S1.T1
→結果は9になります。

6

ABS式(最低気温が-38.45の場合の絶対値を求めます。)

SELECT 地区コード , ABS(最低気温) FROM 気象情報管理表
→結果は38.45 になります。

7

CEIL式(最高気温が27.255で最低気温が-21.235をその値以上の最小整数値にします。)

SELECT 地区名, CEIL(最高気温), CEIL(最低気温) FROM 気象情報管理表
→結果は、最高気温が28.000で最低気温が-21.000になります。

8

FLOOR式(最高気温が27.255で、最低気温が-21.235をその値以下の最大整数値にします。)

SELECT 地区名, FLOOR(最高気温), FLOOR(最低気温) FROM 気象情報管理表
→結果は、最高気温が27.000で最低気温が-22.000になります。

9

ROUND式(最高気温が27.255を小数第2位で四捨五入します。)

SELECT 地区名, ROUND(最高気温, 1) FROM 気象情報管理表
→結果は、最高気温が27.300になります。

10

TRUNC式(最高気温が27.255を小数第2位で切捨てます。)

SELECT 地区名, TRUNC(最高気温, 1) FROM 気象情報管理表
→結果は、最高気温が27.200になります。

11

SPAN_DATE関数(発注日“2007-04-01”から現在の日付“2007-04-10”までの経過日数を求めます。)

SELECT 発注番号,SPAN_DATE(CURRENT_DATE,発注日,'DAY') AS 経過日数
    FROM 発注表
    WHERE 納品日 IS NULL
    ORDER BY 経過日数
→結果は、経過日数が9になります。
12

算術関数(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が返されます。
13

ASCII関数('A'で始まる名前の従業員の数を求めます。)

SELECT COUNT(*) FROM 従業員表 WHERE ASCII(SUBSTRING(名前 FROM 1 FOR 1)) = 65
→'A'で始まる名前が5件の場合、結果は5になります。