条件式は、論理述部プリミティブの集合とみなすことができます。その評価の順序は、論理演算子AND、OR、NOTと、括弧の配置によって制御されます。
表面的には同じように見える条件式でも、個々のプリミティブをどのようにグループ化するかによって、まったく違った結果を生成することがあります。したがって、条件式のロジックを計画するときには、注意が必要です。
SQLがサポートしている論理述部プリミティブを以下のテーブルにまとめます。Match条件とUnique条件がサポートされていない点に留意してください。
論理述部プリミティブ条件 | SQL論理述部 | 関数 |
---|---|---|
比較 | SQL比較演算子の完全なリストについては、サポートされる比較演算子を参照してください。 | 2つのデータ値が等しいかどうかや、大きさの違いをテストします。 |
範囲 | BETWEEN NOT BETWEEN |
データ値が、列データ値の指定の範囲に入っているかどうかをテストします。 |
類似 | LIKE | 指定の文字列と列データ値のパターン照合をテストします。 |
入力 | IN NOT IN |
データ値が、指定の列値セットのメンバーであるかどうかをテストします。 INは、= ANYと等価です。 NOT INは、<> ALLと等価です。 |
すべて | ALL | データ値が、指定のセット内のすべての列値との比較においてTRUEであるかどうかをテストします。 |
いずれか | ANY SOME | データ値が、指定のセット内のいずれかの列値との比較においてTRUEであるかどうかをテストします。 |
存在有無 | EXISTS NOT EXISTS |
指定のテーブルに少なくとも1つの行があるかどうかをテストします。 |
期間述部 | 期間述部演算子の完全なリストについては、<Teradata Vantage™データ タイプおよびリテラル、B035-1143>の「期間関数および演算子」を参照してください。 | 操作対象:
TRUE、FALSE、またはUNKNOWNに評価されます。 |
OVERLAPS | 2つの期間(派生PERIODなど)が重なっているかどうかをテストします。 | |
IS UNTIL_CHANGED IS NOT UNTIL_CHANGED |
PERIOD式(派生PERIODなど)の終了境界がUNTIL_CHANGEDか(または、でないか)をテストします。 |