17.10 - 結果 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1145-171K-JPN
Language
日本語 (日本)
INがリテラルのリストともに使用された場合、expression_1の値が次のときに結果が真になります。
  • リスト内のいずれかのliteralに等しい。
  • signed_literal_1signed_literal_2の間(これらの値を含む)にある(signed_literal_1signed_literal_2より小さいか等しい場合)。
  • signed_literal_2signed_literal_1の間(これらの値を含む)にある(signed_literal_2signed_literal_1より小さい場合)

expression_1の値がNULLの場合、結果は不明となります。

expression_1の値が非NULLの場合は、結果が真意なるためのいずれの条件も満たされないので、結果は偽になります。

この形式を使用すると、式がリテラル リスト内のいずれかと等しい場合、IN検索条件が満たされます。式がリテラルのリスト内のどの値とも等しくない場合は、NOT IN条件が満たされます。

条件が真になる形式 条件
expression_1 IN expression_2 expression_1 = expression_2
expression_1 NOT IN expression_2 expression_1 <> expression_2
expression_1 IN (const_1, const_2) (expression_1 = const_1) OR (expression_1 = const_2)
expression_1 NOT IN (const_1, const_2) (expression_1 <> const_1) AND (expression_1 <> const_2)
expression_1 IN (signed_const_1 TO signed_const_2)

signed_const_1 <= signed_const_2

(signed_const_1 <= expression_1) AND (expression_1 <= signed_const_2)
expression_1 IN (signed_const_1 TO signed_const_2)

signed_const_2 < signed_const_1

(signed_const_2 <= expression_1) AND (expression_1 <= signed_const_1)
expression_1 NOT IN (signed_const_1 TO signed_const_2)

signed_const_1 <= signed_const_2

(expression_1 < signed_const_1) OR (expression_1 > signed_const_2)
expression_1 NOT IN (signed_const_1 TO signed_const_2)

signed_const_2 < signed_const_1

(expression_1 < signed_const_2) OR (expression_1 > signed_const_1)

以下に例を示します。

等価である文
SELECT DeptNo 
FROM Department
WHERE DeptNo IN (500, 600);
SELECT DeptNo 
FROM Department
WHERE DeptNo IN (500)
OR (DeptNo = 600);
UPDATE Employee 
SET Salary=Salary + 200 
WHERE DeptNo NOT IN (100, 700);
UPDATE Employee 
SET Salary=Salary + 200 
WHERE (DeptNo ^= 100) 
AND (DeptNo ^= 700);