EXISTS 関数
EXISTS 関数は、リストに 1 つ以上のエレメントが含まれているかどうか (つまり、リストがあるかどうか) を示すブール値を戻します。
構文
ListExpression で指定されたリストに 1 つ以上のエレメントが含まれている場合、EXISTS は TRUE を戻します。 リストにエレメントが含まれていない場合は、EXISTS は FALSE を戻します。
ListExpression はリストを戻す式です。 例えば、以下の式はすべてリストを戻します。
- LIST コンストラクター
- [] 配列標識を使用したフィールド参照
- 一部の SELECT 式 (リストを戻さないものもある)
リストに少なくとも 1 つのエレメントが含まれているかどうかのみを知りたい場合、EXISTS は、CARDINALITY 関数を含む式 (例えば、 CARDINALITY(ListExpression
) <> 0) よりも速く実行されます。
この関数の典型的な使用法としては、フィールドがあるかどうかを判別する場合があります。
例
-- Determine whether the F1 array exists in the message. Note that the [ ]
-- are required
DECLARE Field1Exists BOOLEAN EXISTS(OutputRoot.XMLNS.Data.Source.F1[]);
-- Determine whether the F1 array contains an element with the value 'F12'.
-- Again note that the [ ] are required
DECLARE Field1F12Exists BOOLEAN
EXISTS(SELECT F.* FROM OutputRoot.XMLNS.Data.Source.F1[] AS F where F = 'F12');
