$LISTLENGTH (SQL)
構文
$LISTLENGTH(list)
概要
$LISTLENGTH は、list にある要素の数を返します。
この関数は、データ型 SMALLINT を返します。
引数
list
有効なリストとして評価される式。list は、1 つ以上の要素を含むエンコードされた文字列です。list を作成するには、SQL または ObjectScript の $LISTBUILD 関数または $LISTFROMSTRING 関数を使用します。既存のリストから list を抽出するには、SQL または ObjectScript の $LIST 関数を使用します。
例
以下の例は、list に 3 つの要素が存在するため、3 を返します。
SELECT $LISTLENGTH($LISTBUILD("Red","Blue","Green"))
以下の SQL の例も、リストに 3 つの要素が存在するため、3 を返します。
SELECT $LISTLENGTH($LISTBUILD('Red','Blue','Green'))
次の例も 3 を返します。2 つ目の要素にはデータがありませんが、リストに 3 つの要素があるためです。
SELECT $LISTLENGTH($LISTBUILD("Red",,"Green"))
以下の SQL の例では、各 $LISTLENGTH は 3 を返します。2 つ目の要素にはデータがありませんが、リストに 3 つの要素があるためです。
SELECT $LISTLENGTH($LISTBUILD('Red','','Green')),
$LISTLENGTH($LISTBUILD('Red',NULL,'Green')),
$LISTLENGTH($LISTBUILD('Red',,'Green'))
メモ
無効なリスト
list が無効なリストの場合は、SQLCODE -400 の致命的なエラーが発生します。
SELECT $LISTLENGTH("fred")
ObjectScript $LISTBUILD 関数を使用して、NULL 文字列のみが含まれるリストを作成した場合、これは 1 つの要素からなる有効な list です。
SELECT $LISTLENGTH($LISTBUILD(""))
NULL リスト
SQL の $LISTLENGTH 関数と ObjectScript の $LISTLENGTH 関数とでは、Null リスト (要素を含まないリスト) の扱い方が異なります。
以下の 3 つの例は、$LISTLENGTH SQL 関数での NULL リストの処理結果を示します。最初の 2 つの例は、list が NULL 文字列で、NULL 文字列を返します。
SELECT $LISTLENGTH("")
SELECT $LISTLENGTH(NULL)
3 つ目の例は、list が値 $CHAR(0) で、これは無効なリストのため、SQLCODE -400 の致命的なエラーが発生します。
SELECT $LISTLENGTH('')
これは ObjectScript の $LISTLENGTH 関数での Null リストの扱い方とは異なるということに注意してください。ObjectScript では、Null リスト (要素を含まないリスト) を表すために Null 文字列 ("") が使用されます。それにはリスト要素が含まれないため、以下の例で示すように、$LISTLENGTH のカウントは 0 となります。
WRITE $LISTLENGTH("")
$LISTLENGTH と入れ子のリスト
以下の例は、$LISTLENGTH が入れ子になっているリストの個々の要素を認識しないため、3 を返します。
SELECT $LISTLENGTH($LISTBUILD("Apple","Pear",$LISTBUILD("Walnut","Pecan")))
関連項目
-
SQL リスト関数 : $LIST、$LISTBUILD、$LISTDATA、$LISTFIND、$LISTFROMSTRING、$LISTGET、$LISTSAME、$LISTTOSTRING
-
その他の SQL 関数 : $PIECE
-
ObjectScript リスト関数: $LIST、$LISTBUILD、$LISTDATA、$LISTFIND、$LISTFROMSTRING、$LISTGET、$LISTLENGTH、$LISTNEXT、$LISTSAME、$LISTTOSTRING、$LISTVALID