バージョン 4.2.5
 —  ステートメント  —

スカラー式

 

+

factor

 

  - (scalar-expression)  
scalar-expression     scalar-operator scalar-expression

このドキュメントでは、次のトピックについて説明します。


スカラー式

scalar-expression は、ファクタまたはスカラー演算子を含む他のスカラー式で構成されます。

参照の優先順位に関して、スカラー式は次のように処理されます。

Top of page

スカラー演算子

+

-
*
/
| |
CONCAT

scalar-operator は上記のいずれかの演算子です。マイナス(-)およびスラッシュ(/)の演算子を使用する場合は、先行する演算子との間を最低 1 つの空白で区切る必要があります。

Top of page

ファクタ

一般セットの構文:

atom

column-reference
aggregate-function
special-register

拡張セットの構文:

atom

column-reference
aggregate-function
special-register
スカラー関数 (スカラー式,)
スカラー式の単位
CASE 式
CAST 式
ユーザー定義関数参照
シーケンス参照

factor は、上図のいずれかの項目で構成されます。これらの項目について次に説明します。

原子

parameter

constant

 atom は、parameter または constant です。「基本構文項目」も参照してください。

列参照

table-name .

column-name
correlation-name

column-reference は、オプションで table-name または correlation-name(「基本構文項目」も参照)で修飾された列名です。 修飾された名前は修飾されない名前よりも明確であり、ときには修飾が必要となります。

注意:
このような場合には、テーブル名を認可 ID で明示的に修飾しないでください。 テーブル名を修飾するときは、代わりに相関名を使用してください。

table-name または correlation-name で列を参照する場合、列は対応するテーブル内に含まれている必要があります。 table-namecorrelation-name も指定されていない場合、各列は FROM 節に指定されたテーブルの 1 つに存在している必要があります。

集積関数

一般セットの構文:

COUNT

(*)

 
(DISTINCT column-reference)  

AVG

       
MAX

(DISTINCT column-reference)

 
MIN ([ALL] scalar-expression)  
SUM        

拡張セットの構文:

COUNT

(*)

(DISTINCT column-reference)

AVG

     
MAX      
MIN  
SUM      
COUNT_BIG      
STDDEV      
STDDEV_POP

(DISTINCT column-reference)

STDDEV_SAMP ([ALL] scalar-expression)
VAR      
VAR_POP      
VAR_SAMP      
VARIANCE      
VARIANCE_SAMP      

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

拡張セットの構文:

USER

CURRENT TIMEZONE
CURRENT DATE
CURRENT TIME
CURRENT TIMESTAMP
CURRENT SQLID
CURRENT PACKAGESET
CURRENT SERVER

special-register に対する参照はスカラー値を返します。

USER を除き、special-registers は標準 SQL には準拠しておらず、Natural SQL 拡張セットでのみサポートされています。

スカラー関数

scalar-function は、スカラー計算式の構築に使用できる組み込み関数です。

Natural SQL 拡張セットでサポートされているスカラー関数の詳細については、『Natural for DB2』ドキュメントの「Natural SQL Statements - Syntactical Items」にある「scalar-function」を参照してください。

スカラー式の単位

YEAR

YEARS
MONTH
MONTHS
DAY
DAYS
HOUR
HOURS
MINUTE
MINUTES
SECOND
SECONDS
MICROSECOND
MICROSECONDS

unit は標準 SQL には準拠しておらず、Natural SQL 拡張セットでのみサポートされています。

CASE 式

CASE

searched-when-clause

ELSE

NULL

END
simple-when-clause scalar-expression

case-expression は標準 SQL には準拠しておらず、Natural SQL 拡張セットでのみサポートされています。

検索 WHEN 節

WHEN search-conditionTHEN

NULL

scalar-expression

検索 WHEN 節は標準 SQL には準拠しておらず、Natural SQL 拡張セットでのみサポートされています。

詳細については、search-condition を参照してください。

単純 WHEN 節

scalar-expression

WHEN scalar-expression THEN

NULL
scalar-expression

単純 WHEN 節は標準 SQL には準拠しておらず、Natural SQL 拡張セットでのみサポートされています。

CAST 式

CAST (scalar-expression ASdata-type)
 

CAST 式は標準 SQL には準拠しておらず、Natural SQL 拡張セットでのみサポートされています。

ユーザー定義関数参照

オプション user-defined-function-reference は Natural SQL 拡張セットに含まれます。 このオプションでは、ユーザー定義関数を呼び出すことができます。 引数は角カッコ内にコンマで区切って指定する必要があります。 ユーザー定義関数はターゲット RDBMS で宣言する必要があります。

シーケンス参照

NEXT VALUE FOR sequence-name
PREVIOUS VALUE FOR sequence-name

オプション sequence-reference は Natural SQL 拡張セットに含まれます。

このオプションでは、シーケンスオブジェクトの次の値または前の値を参照できます。 シーケンスオブジェクトは、ランタイムに参照される前に、ターゲット RDBMS で作成する必要があります。

スカラー全選択

(fullselect)

オプション scalar-fullselect は Natural SQL 拡張セットに含まれます。

式では、単一の列値で構成される単一行を返す scalar-fullselect(カッコで囲んだ fullselect)がサポートされています。 fullselect で行が返されない場合、式の結果は空値になります。 scalar-fullselect に対して複数の行が返される場合、エラーが発生します。

Top of page