ARRAY_FIRST スカラー関数

ARRAY_FIRST 関数は、配列の最小の配列指標値を戻します。

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

スキーマは SYSIBM です。

配列式
変更の開始SQL変数、SQLパラメータ、配列型のグローバル変数、または、SQL変数、SQLパラメータ、グローバル変数、またはパラメータマーカーをソース値として指定するCAST指定。変更の終わり

ARRAY_FIRST の結果のデータ・タイプは、添字と同じになります。 array-expression が NULL でなく、配列が空でない場合 (配列のカーディナリティーが 0 より大きい場合)、 結果の値は最小の添字値になります (通常配列の場合は 1)。

結果はnullになる可能性があります。引数がnullの場合、結果もnull値となります。

配列が空の場合 (配列のカーディナリティーが 0 の場合)、結果は NULL 値になります。

代替構文:

CAST (SQL 変数 AS array-type) は、SQL-variable の代わりとして指定することができます。 CAST (SQL-parameter AS array-type) を SQL-parameter の代わりとして指定できます。

例 1: SPECIALNUMBERS が通常配列変数であり、その配列のエレメントが整数であるとします。 配列変数 SPECIALNUMBERS の最初の添字の値を SQL 変数 E_CONSTIDX に戻します。

SET E_CONSTIDX = ARRAY_FIRST(SPECIALNUMBERS);

結果は、1 です。

例 2: PHONELIST が VARCHAR 添字値を持つ連想配列変数であるとします。 以下のステートメントで、この配列のエレメントに値が代入されました。

SET PHONELIST['Home'] = '4443051234';
SET PHONELIST['Work'] = '4443052345';
SET PHONELIST['Cell'] = '4447893456';

連想配列の配列エレメントに値が代入される順序は、問題ではありません。 連想配列のエレメントは、関連付けられた添字値の昇順で配列変数に保管されます。 SET assignment-statement ステートメントを使って PHONELIST 配列変数に値を代入した後、配列変数のエレメントは次のように順序付けされています。

添字値 Element value
セル 4447893456
Home 4443051234
作業 4443052345

配列変数の最初の添字の値を X という文字ストリング変数に代入します。

SET X = ARRAY_FIRST(PHONELIST);

「Cell」が配列変数の最初のエレメントの添字値であるため、「Cell」の値が X に代入されます。

添字 X の配列エレメントの値を SQL 変数 NUMBER_TO_CALL に代入します。

SET NUMBER_TO_CALL = PHONELIST[X];

この代入ステートメントは、電話番号「4447893456」を NUMBER_TO_CALL に代入します。