Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » クエリとデータ修正 » クエリ » WHERE 句:ローの指定

 

カラム値を NULL と比較する

IS NULL 探索条件を使用すると、カラム値を NULL と比較したり、その比較の結果に基づいてカラム値を選択したりするなど、特定の動作を実行できます。TRUE の値を返すカラムだけが、選択されたり、結果として指定の動作を行ったりします。FALSE や UNKNOWN を返すカラムの場合、そういうことはありません。

次の例では、UnitPrice が $15 未満または NULL のローだけを選択します。

SELECT Quantity, UnitPrice
   FROM Products
   WHERE UnitPrice < 15
   OR UnitPrice IS NULL;

NULL が指定の値や別の NULL に等しいか (または等しくないか) わからないので、NULL 比較の結果はすべて UNKNOWN になります。

true を決して返さない条件があり、そうした条件を使用するクエリは結果セットを返しません。たとえば、NULL は不定の値があるという意味であるため、次の比較は決して true とは見なされません。

WHERE column1 > NULL

WHERE 句でカラム名を 2 つ使用する場合、つまり 2 つのテーブルをジョインする場合にも、この論理は適用されます。条件WHERE column1 = column2を含む句は、カラムに NULL が含まれるローを返しません。

次のパターンで NULL や NOT NULL も検索できます。

WHERE column_name IS NULL
WHERE column_name IS NOT NULL

次に例を示します。

WHERE advance < $5000
OR advance IS NULL
 参照