比較条件
比較条件はある式を別の式と比較します。比較の結果は、TRUE
、FALSE
またはUNKNOWN
になります。
ラージ・オブジェクト(LOB)は、比較条件ではサポートされていません。ただし、CLOB
データの比較では、PL/SQLプログラムを使用できます。
数式を比較する場合、Oracleは数値の優先順位を使用して、その条件がNUMBER
、BINARY_FLOAT
またはBINARY_DOUBLE
のうちどの値を比較するかを判断します。数値の優先順位の詳細は、数値の優先順位を参照してください。
文字式を比較する場合、Oracleはデータ型の比較規則で説明されている規則を使用します。この規則では、比較の前の式の文字セットの位置、バイナリ比較または言語比較(照合)の使用、空白埋め比較セマンティクスの使用および照合キーに課せられた制限による制約(エラーORA-12742:
unable
to
create
the
collation
key
のレポートなど)が定義されます。
非スカラー型の2つのオブジェクトが比較可能なのは、これらが同じ名前付きの型であり、要素が1対1で対応している場合です。また、ユーザー定義オブジェクト型のネストした表では、要素が比較可能な場合も、等式やIN
条件で使用するMAP
メソッドが定義されている必要があります。
関連項目:
MAP
メソッドを使用したオブジェクトの比較の詳細は、『Oracle Databaseオブジェクト・リレーショナル開発者ガイド』を参照してください。
表6-2に、比較条件を示します。
表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; |
|
"op"は=、!=、>、<、<=、または>=のいずれかである必要があります。
これらの比較のいずれかがTRUEを返す場合、 これらの比較がすべて
|
SELECT * FROM employees WHERE salary = ANY (SELECT salary FROM employees WHERE department_id = 30) ORDER BY employee_id; |
|
"op"は=、!=、>、<、<=、または>=のいずれかである必要があります。
これらの比較のいずれかが これらの比較がすべて |
SELECT * FROM employees WHERE salary >= ALL (1400, 3000) ORDER BY employee_id; |
単純比較条件
単純比較条件は、式または副問合せの結果の比較方法を指定します。
simple_comparison_condition::=
expression_list::=
この条件の下の方の書式(演算子の左辺に1つの式を指定する書式)を使用する場合は、expression_list
の上または下の方の書式を使用できます。この条件の下の方の書式(演算子の左辺に複数の式を指定する書式)を使用する場合は、expression_list
の下の方の書式を使用する必要があります。どちらの場合も、expression_list
の式は、演算子の左辺にある式と同じ数とデータ型で構成されている必要があります。副問合せ
を指定する場合、副問合せから戻される値は、演算子の左辺にある式と同じ数とデータで構成されている必要があります。
グループ比較条件
グループ比較条件は、リストまたは副問合せ内の任意またはすべてのメンバーの比較方法を指定します。
group_comparison_condition::=
expression_list::=
この条件の上の方の書式(演算子の左辺に1つの式を指定する書式)を使用する場合は、expression_list
の上の方の書式を使用する必要があります。この条件の下の方の書式(演算子の左辺に複数の式を指定する書式)を使用する場合は、expression_list
の下の方の書式を使用し、各expression_list
内の式は、演算子の左辺にある式と同じ数とデータ型で構成されている必要があります。副問合せ
を指定する場合、副問合せから戻される値は、演算子の左辺にある式と同じ数とデータで構成されている必要があります。
関連項目:
-
比較条件の照合決定ルールは、『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Cを参照してください。