プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

比較条件

比較条件は、2つの式を比較します。比較の結果は、TRUEFALSEまたはUNKNOWNになります。

ラージ・オブジェクト(LOB)は、比較条件ではサポートされていません。ただし、CLOBデータの比較では、PL/SQLプログラムを使用できます。

数式を比較する場合、Oracleは数値の優先順位を使用して、その条件がNUMBERBINARY_FLOATまたはBINARY_DOUBLEのうちどの値を比較するかを判断します。数値の優先順位の詳細は、「数値の優先順位」を参照してください。

文字式を比較する場合、Oracleは「データ型の比較規則」で説明されている規則を使用します。この規則では、比較の前の式のキャラクタ・セットの位置、バイナリ比較または言語比較(照合)の使用および空白埋め比較セマンティクスの使用が定義されます。

比較条件を使用して言語的に比較される場合、文字値は、最初に照合キーに変換されてからRAW値と同様に比較されます。照合キーは、NLSSORTファンクションによって戻されるものと同じ値であり、「NLSSORT」で説明されているものと同じ制限事項があります。これらの制限事項により、照合キーの生成に使用された接頭辞に違いがない場合、その他の値に違いがあるとしても、2つの式は言語的に等しいものとして比較されることがあります。

非スカラー型の2つのオブジェクトが比較可能なのは、これらが同じ名前付きの型であり、要素が1対1で対応している場合です。また、ユーザー定義オブジェクト型のネストした表では、要素が比較可能な場合も、等式やIN条件で使用するMAPメソッドが定義されている必要があります。


関連項目:

MAPメソッドを使用したオブジェクトの比較の詳細は、『Oracle Databaseオブジェクト・リレーショナル開発者ガイド』を参照してください。

表7-2に、比較条件を示します。

表7-2 比較条件

条件の種類 用途

=


等価性をテストします。

SELECT *
  FROM employees
  WHERE salary = 2500
  ORDER BY employee_id;

!=

^=

<>

logical_negation_symbol= (注意1)

不等性をテストします。プラットフォームによっては、一部の不等号条件を使用できない場合もあります。

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;

ANY

SOME

リスト内の各値または問合せによって戻される各値と、ある値を比較します。=、!=、>、<、<=、>=のいずれかを先に指定する必要があります。1つ以上の値を戻す任意の式または副問合せを後に指定できます。

問合せによって行が戻されない場合には、FALSEと評価されます。

SELECT * FROM employees
  WHERE salary = ANY
  (SELECT salary 
   FROM employees
  WHERE department_id = 30)
  ORDER BY employee_id;

ALL

リスト内のすべての値または問合せによって戻されるすべての値と、ある値を比較します。=、!=、>、<、<=、>=のいずれかを先に指定する必要があります。1つ以上の値を戻す任意の式または副問合せを後に指定できます。

問合せによって行が戻されない場合には、TRUEと評価されます。

SELECT * FROM employees
  WHERE salary >=
  ALL (1400, 3000)
  ORDER BY employee_id;

注意1: logical_negation_symbolはASCIIキャラクタで、10進値の170です。

単純比較条件

単純比較条件は、式または副問合せの結果の比較方法を指定します。

simple_comparison_condition::=

simple_comparison_condition.gifの説明が続きます。
図「simple_comparison_condition.gif」の説明

expression_list::=

expression_list.gifの説明が続きます。
図「expression_list.gif」の説明

この条件の下の方の書式(演算子の左辺に複数の式を指定する書式)を使用する場合は、expression_listの下の方の書式を使用し、expression_list内の式は、演算子の左辺にある式と同じ数とデータ型で構成されている必要があります。副問合せを指定する場合、副問合せから戻される値は、演算子の左辺にある式と同じ数とデータで構成されている必要があります。


関連項目:

式の組合せの詳細は、「式のリスト」を参照してください。副問合せの詳細は、「SELECT」を参照してください。

グループ比較条件

グループ比較条件は、リストまたは副問合せ内の任意またはすべてのメンバーの比較方法を指定します。

group_comparison_condition::=

group_comparison_condition.gifの説明が続きます。
図「group_comparison_condition.gif」の説明

expression_list::=

expression_list.gifの説明が続きます。
図「expression_list.gif」の説明

この条件の上の方の書式(演算子の左辺に1つの式を指定する書式)を使用する場合は、expression_listの上の方の書式を使用する必要があります。この条件の下の方の書式(演算子の左辺に複数の式を指定する書式)を使用する場合は、expression_listの下の方の書式を使用し、各expression_list内の式は、演算子の左辺にある式と同じ数とデータ型で構成されている必要があります。副問合せを指定する場合、副問合せから戻される値は、演算子の左辺にある式と同じ数とデータで構成されている必要があります。