ANY/ALL/SOME数量詞 - Teradata Database - Teradata Vantage NewSQL Engine - LIKE ANY/ALL/SOME数量詞。

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

SQLは、数量詞のANY (またはSOME)およびALLを認識します。次の一般的な例で示すように、数量詞によって、1つ以上の式を1つ以上の値と比較できます。



指定する数量詞 検索条件が満たされるときにexpression LIKE pattern_string …が真となる範囲
ALL リスト内のすべての文字列
ANY リスト内のいずれかの文字列

ALL数量詞は、論理文FOR です。

ANY数量詞は、論理文FOR Ǝです。

次のテーブルは、このことを示しています。

等価である式
x LIKE ALL ('A%','%B','%C%') x LIKE 'A%'

AND x LIKE '%B'

AND x LIKE '%C%'

x LIKE ANY ('A%','%B','%C%') x LIKE 'A%'

OR x LIKE '%B'

OR x LIKE '%C%'

次の文は、肩書の中で文字列「Pres」が使われているか、または「Man」で始まる行を社員テーブルから選択します。

   SELECT * 
   FROM Employee 
   WHERE JobTitle LIKE ANY ('%Pres%', 'Man%');

この文の結果は、次のとおりです。

EmpNo Name DeptNo JobTitle Salary
10021 Smith T 700 Manager 45, 000.00
10008 Phan A 300 Vice Pres 55, 000.00
10007 Aguilar J 600 Manager 45, 000.00
10018 Russell S 300 President 65, 000.00
10012 Watson L 500 Vice Pres 56, 000.00

次の形式に対し、ALLまたはANY/SOME限定子が指定された場合には、subqueryは、0行、1行、または数行を返します。



ただし、次のテーブルに示すように、数量詞が使用されない場合は、サブクエリーは何の値も返さないか、単一の値を返すかのどちらかです。

真になる場合のexpressionの一致対象
expression LIKE (subquery) サブクエリーによって返された単一の値。
expression LIKE ANY (subquery) サブクエリーによって返された値セットのうち、少なくとも1つの値。サブクエリーが何の値も戻さない場合は偽。
expression LIKE ALL (subquery) サブクエリーによって返された値セットのそれぞれの値、サブクエリーが何の値も戻さない場合は偽。