$LISTDATA (SQL)
構文
$LISTDATA(list[,position])
説明
$LISTDATA は、リスト内の指定された要素のデータを調べます。position 引数で指定された要素が list に存在し、データ値を持つ場合、$LISTDATA は値 1 を返します。要素が list に存在しないか、またはデータ値を持たない場合、$LISTDATA は値 0 を返します。
この関数は、データ型 SMALLINT を返します。
引数
list
1 つ以上の要素を含む、エンコードされた文字の文字列。リストは、SQL $LISTBUILD 関数または ObjectScript $LISTBUILD 関数を使用して作成できます。区切り文字列からリストへの変換は、SQL $LISTFROMSTRING 関数または ObjectScript $LISTFROMSTRING 関数を使用して行うことができます。既存のリストからのリストの抽出は、SQL $LIST 関数または ObjectScript $LIST 関数を使用して行うことができます。
position
position 引数を省略した場合、$LISTDATA は先頭要素を評価します。position 引数の値が -1 の場合は、リストの最終要素を指定するのと同じ意味です。position 引数の値が存在しないリスト・メンバを参照する場合は、$LISTDATA は 0 を返します。
例
以下の例では、position 引数にさまざまな値を指定した結果を示します。
以下のすべての $LISTDATA 文は、1 を返します。
SELECT
$LISTDATA($LISTBUILD("Red",,Y,"","Green")),
$LISTDATA($LISTBUILD("Red",,Y,"","Green"),1),
$LISTDATA($LISTBUILD("Red",,Y,"","Green"),4),
$LISTDATA($LISTBUILD("Red",,Y,"","Green"),5),
$LISTDATA($LISTBUILD("Red",,Y,"","Green"),-1)
以下の $LISTDATA 文は、同じ 5 つの要素のリストに対して 0 の値を返します。
SELECT
$LISTDATA($LISTBUILD("Red",,Y,"","Green"),2),
$LISTDATA($LISTBUILD("Red",,Y,"","Green"),3),
$LISTDATA($LISTBUILD("Red",,Y,"","Green"),0),
$LISTDATA($LISTBUILD("Red",,Y,"","Green"),6)
メモ
無効な引数値
list 引数の式が有効なリストとして評価されない場合は、SQLCODE -400 の致命的なエラーが発生します。
SELECT $LISTDATA('fred')
position 引数の値が -1 よりも小さい場合は、SQLCODE -400 の致命的なエラーが発生します。
SELECT $LISTDATA($LISTBUILD("Red","Blue","Green"),-3)
position が数値以外の値の場合は、このエラーは発生しません。
SELECT $LISTDATA($LISTBUILD("Red","Blue","Green"),'g')