CARDINALITY スカラー関数

CARDINALITY 関数は、配列のエレメント数を示すタイプ BIGINT の値を戻します。

構文図を参照するビジュアルシンタックスダイアグラムをスキップするCARDINALITY( 配列式)

スキーマは SYSIBM です。

配列式
変更の開始SQL変数、SQLパラメータ、配列型のグローバル変数、または、SQL変数、SQLパラメータ、グローバル変数、またはパラメータマーカーをソース値として指定するCAST指定。変更の終わり
CARDINALITY 関数の結果は、次のようになります。
  • 通常配列の場合、結果は、代入されたエレメントが配列内に存在する最も高い添字になります。 NULL 値が代入されたエレメントは、代入されたエレメントと見なされます。
  • 連想配列の場合、結果は、array-expression に定義されている一意の添字値の実際の数になります。
  • 空の配列の場合、結果は 0 になります。

結果のデータ・タイプは BIGINT です。

結果は NULL になる可能性があります。array-expression が NULL の場合、結果は NULL 値となります。

例 1: 配列 RECENT_CALLS が定義されており、この配列に最近の通話の記録が入っているとします。 RECENT_CALLS には 3 つのエレメントが入っています。 以下の SET ステートメントは、これまでに配列に保存されている通話件数を SQL 変数 HOWMANYCALLS に代入します。

SET HOWMANYCALLS = CARDINALITY(RECENT_CALLS);

このステートメントを実行した後、HOWMANYCALLS には 3 が入っています。

例 2: 配列タイプ CAPITALSARRAY の連想配列変数 CANADACAPITALS に、カナダの 10 州および 3 つの準州のすべての州都および準州都、ならびに国の首都であるオタワが入っているとします。 以下の SET ステートメントは、CANADACAPTITALS のカーディナリティーを SQL 変数 NUMCAPITALS に代入します。

SET NUMCAPITALS = CARDINALITY(CANADACAPITALS) ;

このステートメントを実行した後、CANADACAPITALS には 14 が入っています。