+
|
factor | ||||||||
-
|
(scalar-expression) | ||||||||
scalar-expression | scalar-operator | scalar-expression |
このドキュメントでは、次のトピックについて説明します。
scalar-expression は、ファクタまたはスカラー演算子を含む他のスカラー式で構成されます。
参照の優先順位に関して、スカラー式は次のように処理されます。
非修飾変数名がスカラー式に指定されるとき、最初に変数名は参照テーブルの列名として解決されます。
指定された名前の列が参照テーブルで有効でない場合、Natural はこの変数を Natural ユーザー定義変数(ホスト変数)として解決しようとします。
+
|
||
-
|
||
*
|
||
/
|
scalar-operator とは上記のいずれかの演算子です。演算子 "-" および "/" を使用する場合は、先行する演算子との間を最低 1 つの空白で区切る必要があります。
atom | ||
column-reference | ||
aggregate-function | ||
special-register |
factor は、上図のいずれかの項目で構成されます。これらの項目について次に説明します。
parameter | ||
constant |
atom は、parameter または constant です。「基本構文項目」も参照してください。
table-name | column-name | ||
correlation-name |
column-reference は、オプションで table-name または correlation-name(「基本構文項目」も参照)で修飾された列名です。 修飾された名前は修飾されない名前よりも明確であり、ときには修飾が必要となります。
注意:
このような場合には、テーブル名を認可 ID で明示的に修飾しないでください。 テーブル名を修飾するときは、代わりに相関名を使用してください。
table-name または correlation-name で列を参照する場合、列は対応するテーブル内に含まれている必要があります。 table-name も correlation-name も指定されていない場合、各列は FROM
節に指定されたテーブルの 1 つに存在している必要があります。
COUNT
|
(*) | ||||||
(DISTINCT column-reference)
|
|||||||
AVG
|
|||||||
MAX
|
(DISTINCT column-reference)
|
||||||
MIN
|
([ALL ] scalar-expression)
|
||||||
SUM
|
SQL は基本的な取得機能拡張のために多くの特別関数を提供しています。 現在有効で Natural がサポートする、いわゆる SQL 集積関数は次のとおりです。
AVG | 列の平均値 |
---|---|
COUNT | 列の値の個数 |
MAX | 列の最大値 |
MIN | 列の最小値 |
SUM | 列の合計値 |
COUNT(*)
は別にして、上記の関数は引数(つまり、単一の列または scalar-expression)のスカラー値の集合を処理します。その結果としてスカラー値を生成します。
例:
DEFINE DATA LOCAL 1 AVGAGE (I2) END-DEFINE ... SELECT AVG (AGE) INTO AVGAGE FROM SQL-PERSONNEL ...
関数が適用される前に余分な重複値を削除するため、一般的に、引数の前にキーワード DISTINCT
をオプションで指定できます。
DISTINCT
を指定する場合、引数は単一の列名にする必要があります。DISTINCT
を指定しない場合、引数は一般的な scalar-expression の構成にすることもできます。
重複値を削除せずにテーブルのすべての行をカウントする特別関数 COUNT(*)
に DISTINCT
を指定することはできません。
USER
|
special-register に対する参照はスカラー値を返します。