CHAPTER 9: Expressions


9.1 はじめに

expression (expr)はコマンドではありません。これらはコマンド の一部として指定可能な式です。式はSELECTコマンド、UPDATE コマンド、WHERE句で指定できます。

Syntax

expr is: |attr
|string CONSTANT
|number
|(expr)
|CONVERT expr [TO] data_type
|CONVERT expr [TO] GENERIC data_type
|expr CONVERT [TO] data_type
|expr CONVERT [TO] GENERIC data_type
|expr operator expr
|expr operator
|operator expr
|built_in_function
|user_defined_function
|user_defined_aggregate_function
|aggregate_function
|math_library_function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

注意

  1. 可能な場合は常に、式の評価中で自動的なデータ型の変換が実行されます。

  2. 式の結果をユーザ自身でデータ変換しない限り、その処理結果は 非パラメータ形式(いかなるフィールドにも関連付けされていない)のデータとなり ます。非パラメータ形式のデータについては、 データタイプの章で解説しています。

  3. ユーザによるデータタイプの変換は、 Empress SQL: ユーザーズガイドで解説しています。

  4. 日付演算の為の式は、 Empress SQL: ユーザーズガイドで解説しています。

  5. 0による除算などのように、式を評価できない場合は、エラーメッセージを出力 します。

  6. 演算子は。Empress演算子です。利用可能な演算子は 次の章を参照してください。

  7. Empressのファンクションは、以下のように分類できます。

    • 集計関数 (aggregate_function),
    • 組込み関数 (built_in_function),
    • 数学関数 (math_library_function),
    • ユーザ定義関数 (user_defined_function) and
    • ユーザ定義集計関数 (user_defined_aggregate_function).

    これらのファンクションに関しては、次の章で解説します。

    集計関数とは、COUNT,MAX,MIN, SUM,AVGです。

    以下に組込み関数示します。

    abs ( )
    ceiling ( )
    datenext ( )
    floor ( )
    is_decimal ( )
    is_integer ( )
    is_white ( )
    length ( )
    lpad ( )
    lscan ( )
    ltrim ( )
    nullval ( )
    round ( )
    rpad ( )
    rscan ( )
    rstrindex ( )
    rtrim ( )
    sign ( )
    strdel ( )
    strindex ( )
    strins ( )
    substr ( )
    tolower ( )
    toupper ( )
    trunc ( )

    使用可能な数学関数は、システムに依存します。以下に示す関数のサブセット となります。

    acos
    asin
    atan
    atan2
    ceil
    cos
    cosh
    erf
    erfc
    expr
    fabs
    floor
    fmod
    frexp
    frexpman
    frexpexp
    gamma
    hypot
    j0
    j1
    jn
    jdexp
    log
    log10
    modf
    modffrac
    modfint
    pow
    sin
    sinh
    sqrt
    tan
    tanh
    y0
    y1
    yn

    ユーザ定義関数ユーザ定義集計関数については、 Empress: ユーザ定義関数を参照 してください。

  8. 集計関数は、UPDATEWHERE句の式中では使用でき ません。



9.2 演算子

以下に有効なEmpress演算子を示します。

Table 9-1: Empress演算子

演算子 概要
+ 数値データの加算。
   SELECT numeric_attr1 + numeric_attr2 FROM table_name;

- 数値データの減算。
* 数値データの乗算。
/ 数値データの除算。
% 数値データの除算後の余り。
   SELECT numeric_attr1 % numeric_attr2 FROM table_name;

concat 文字データの連結。
   SELECT char_attr1 CONCAT char_attr2 FROM table_name;

   SELECT char_attr1 CONCAT " - " CONCAT char_attr2 FROM table_name;

day(s) DATE/TIME/MICROTIMESTAMPの算術。
   SELECT date_attribute + 3 DAYS FROM table_name;

   SELECT date_attribute - 3 DAYS FROM table_name;

dayof DATE/TIME/MICROTIMESTAMPデータタイプの日。
week(s) DATE/TIME/MICROTIMESTAMPの算術。
month(s) DATE/TIME/MICROTIMESTAMPの算術。
monthof DATE/TIME/MICROTIMESTAMPデータタイプの月。
year(s) DATE/TIME/MICROTIMESTAMPの算術。
yearof DATE/TIME/MICROTIMESTAMPデータタイプの年。
hour(s) DATE/TIME/MICROTIMESTAMPの算術。
hourof TIME/MICROTIMESTAMPデータタイプの時間。
minute(s) DATE/TIME/MICROTIMESTAMPの算術。
minuteof TIME/MICROTIMESTAMPデータタイプの分。
second(s) DATE/TIME/MICROTIMESTAMPの算術。
secondof TIME/MICROTIMESTAMPデータタイプの秒。
weekofyear 週数。0-53の範囲。
dayname 0-6の曜日に対応した名前。
dayofweek DATE/TIME/MICROTIMESTAMPデータタイプの曜日に 対応する整数。
dayofyear DATE/TIME/MICROTIMESTAMPデータタイプの日付に 対応する整数。

詳しくは、Empress: SQL ユーザーズガイド日付算術を参照して ください。