Skip to main content

$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')

関連項目

FeedbackOpens in a new tab