比較条件は、2つの式を比較します。比較の結果は、TRUE
、FALSE
またはUNKNOWN
になります。
ラージ・オブジェクト(LOB)は、比較条件ではサポートされていません。ただし、CLOB
データの比較では、PL/SQLプログラムを使用できます。
数式を比較する場合、Oracleは数値の優先順位を使用して、その条件がNUMBER
、BINARY_FLOAT
またはBINARY_DOUBLE
のうちどの値を比較するかを判断します。数値の優先順位の詳細は、「数値の優先順位」を参照してください。
文字式を比較する場合、Oracleは「データ型の比較規則」で説明されている規則を使用します。この規則では、比較の前の式のキャラクタ・セットの位置、バイナリ比較または言語比較(照合)の使用および空白埋め比較セマンティクスの使用が定義されます。
比較条件を使用して言語的に比較される場合、文字値は、最初に照合キーに変換されてからRAW
値と同様に比較されます。照合キーは、NLSSORT
ファンクションによって戻されるものと同じ値であり、「NLSSORT」で説明されているものと同じ制限事項があります。これらの制限事項により、照合キーの生成に使用された接頭辞に違いがない場合、その他の値に違いがあるとしても、2つの式は言語的に等しいものとして比較されることがあります。
非スカラー型の2つのオブジェクトが比較可能なのは、これらが同じ名前付きの型であり、要素が1対1で対応している場合です。また、ユーザー定義オブジェクト型のネストした表では、要素が比較可能な場合も、等式やIN
条件で使用するMAP
メソッドが定義されている必要があります。
関連項目: MAP メソッドを使用したオブジェクトの比較の詳細は、『Oracle Databaseオブジェクト・リレーショナル開発者ガイド』を参照してください。 |
表6-2に、比較条件を示します。
条件の種類 | 用途 | 例 |
---|---|---|
|
等価性をテストします。 |
SELECT * FROM employees WHERE salary = 2500 ORDER BY employee_id; |
|
不等性をテストします。プラットフォームによっては、一部の不等号条件を使用できない場合もあります。 |
SELECT * FROM employees WHERE salary != 2500 ORDER BY employee_id; |
|
大/小をテストします。 |
SELECT * FROM employees WHERE salary > 2500 ORDER BY employee_id; SELECT * FROM employees WHERE salary < 2500 ORDER BY employee_id; |
|
以上/以下をテストします。 |
SELECT * FROM employees WHERE salary >= 2500 ORDER BY employee_id; SELECT * FROM employees WHERE salary <= 2500 ORDER BY employee_id; |
|
リスト内の各値または問合せによって戻される各値と、ある値を比較します。=、!=、>、<、<=、>=のいずれかを先に指定する必要があります。1つ以上の値を戻す任意の式または副問合せを後に指定できます。 問合せによって行が戻されない場合には、 |
SELECT * FROM employees WHERE salary = ANY (SELECT salary FROM employees WHERE department_id = 30) ORDER BY employee_id; |
|
リスト内のすべての値または問合せによって戻されるすべての値と、ある値を比較します。=、!=、>、<、<=、>=のいずれかを先に指定する必要があります。1つ以上の値を戻す任意の式または副問合せを後に指定できます。 問合せによって行が戻されない場合には、 |
SELECT * FROM employees WHERE salary >= ALL (1400, 3000) ORDER BY employee_id; |
注意1: logical_negation_symbol
はASCIIキャラクタで、10進値の170です。
単純比較条件は、式または副問合せの結果の比較方法を指定します。
simple_comparison_condition::=
expression_list::=
この条件の下の方の書式(演算子の左辺に1つの式を指定する書式)を使用する場合は、expression_list
の上または下の方の書式を使用できます。この条件の下の方の書式(演算子の左辺に複数の式を指定する書式)を使用する場合は、expression_list
の下の方の書式を使用する必要があります。どちらの場合も、expression_list
の式は、演算子の左辺にある式と同じ数とデータ型で構成されている必要があります。副問合せ
を指定する場合、副問合せから戻される値は、演算子の左辺にある式と同じ数とデータで構成されている必要があります。
グループ比較条件は、リストまたは副問合せ内の任意またはすべてのメンバーの比較方法を指定します。
group_comparison_condition::=
expression_list::=
この条件の上の方の書式(演算子の左辺に1つの式を指定する書式)を使用する場合は、expression_list
の上の方の書式を使用する必要があります。この条件の下の方の書式(演算子の左辺に複数の式を指定する書式)を使用する場合は、expression_list
の下の方の書式を使用し、各expression_list
内の式は、演算子の左辺にある式と同じ数とデータ型で構成されている必要があります。副問合せ
を指定する場合、副問合せから戻される値は、演算子の左辺にある式と同じ数とデータで構成されている必要があります。