9.1に示すように、通常の比較演算子が使用可能です。等しくない注記!=演算子は構文解析で<>に変換されます。!=演算子と<>演算子に異なる処理を行わせる実装はできません。比較演算子は関連性のある全てのデータ型で使用できます。全ての比較演算子は二項演算子で、boolean型の値を返します。3のような式は(ブール値と3を比較する<演算子がないので)無効です。9.2に示すように、比較の述語がいくつかあります。これらは演算子と同様に振る舞いますが、標準SQLによって強制される特別の構文があります。真あるいは偽であるBETWEEN述語は範囲の検査を次のように単純にします。BETWEENは範囲内に含まれるとして終点値を扱うことに注意してください。BETWEENはその反対の比較をします(指定した値は包括しません)。SYMMETRICは、ANDの左側の引数が右側の引数より小さいか、もしくは等しいという必要性が無い点を除きBETWEENと同様です。この条件を満たしていない場合、2つの引数は自動的に交換されますので、常に空ではない範囲となります。入力のどちらかがNULLの場合、通常の比較演算子は真や偽ではなく(「不明」を意味する)nullを生成します。NULLはnullになります。FROM述語を使用してください。FROMは<>演算子と同じです。入力がどちらもNULLの場合、これは偽を返し、片方の入力のみがNULLの場合は真を返します。FROMは非NULL入力では=と同じですが、両方の入力がNULLであれば真を、片方のみがNULLの場合は偽を返します。このように、これらの述語はNULLを「不明な値」ではなく、通常の値かのように動作します。値がNULLかNULLでないかを検証するには次の述語を使います。NULLあるいは、これと同等の、非標準の述語も使えます。(NULL値は不明の値を表しているため、不明な値同士が同じかどうかは識別できません)。NULLが、expressionがNULL値と評価されるのであれば真を返すことを期待することがあります。したアプリケーションは標準SQLに従うように改修することを強く推奨します。それができなければtransform_null_equalsを使用することで対応することができます。NULLに変換します。NULLは真となります。NULLは、行式自体が非NULLかつ、行のフィールドすべてが非NULLの場合に真となります。NULLは行値評価式に対し常に反対の結果を返すわけではありません。NULLと非NULLの値の両方を含む行値式はどちらの試験でも偽を返します。NULLと記述する方が望ましいことがあるでしょう。これらは単に行全体の値がNULLかどうかを検査し、行のフィールドについての追加的検査を全く行わないからです。論理値も次の述語で検証できます。UNKNOWNこれらは、常に真か偽を返し、演算項目がNULLであってもNULL値を返すことはありません。NULL値が入力されると、「不明」という論理値として扱われます。NULLと同じであることに注意してください。9.3に示すように、比較に関連した関数がいくつか使用可能です。