ホームページ  >  記事  >  データベース  >  Oracle でクエリ重複排除を実行する方法

Oracle でクエリ重複排除を実行する方法

青灯夜游
青灯夜游オリジナル
2022-03-16 16:39:0141370ブラウズ

Oracle では、SELECT ステートメントと DISTINCT キーワードを使用してクエリの重複排除を実現し、クエリ結果セット内の重複行をフィルタリングして、クエリ操作後に返される指定した列の値が確実に返されるようにすることができます。 unique; 構文は「SELECT DISTINCT フィールド名 FROM データ テーブル名;」です。

Oracle でクエリ重複排除を実行する方法

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle では、SELECT ステートメントと DISTINCT キーワードを使用してクエリの重複排除を実現できます。

Oracle SELECT DISTINCT ステートメント

SELECT ステートメントの DISTINCT 句を使用して、結果セット内の重複行をフィルタリングします。これにより、SELECT 句で指定された列 (複数可) に返される値が一意であることが保証されます。

次に、SELECT DISTINCT ステートメントの構文について説明します。

SELECT DISTINCT
  column_name
FROM
  table_name;

上記の構文では、table_name の column_name テーブルの値は、重複を除外するために比較されます。

複数の列に基づいて一意のデータを取得するには、次のように SELECT 句に列のリストを指定するだけです。

SELECT
    DISTINCT column_1,
    column_2,
        ...
FROM
    table_name;

この構文では、 ## の組み合わせです。 #column_1column_2column_n の値は、データの一意性を判断するために使用されます。

DISTINCT 句は、SELECT ステートメントでのみ使用できます。

DISTINCT は SQL 標準 UNIQUE の同義語ではないことに注意してください。常に UNIQUE の代わりに DISTINCT を使用することをお勧めします。

Oracle DISTINCT の例

SELECT DISTINCT の使用例をいくつか示し、その動作を確認します。

#1. 1 つの列に適用された Oracle DISTINCT の例

サンプル データベースの連絡先 (

contacts

) テーブルを表示します:

#次の例では、すべての連絡先の名前を取得します。Oracle でクエリ重複排除を実行する方法

SELECT first_name
FROM contacts
ORDER BY first_name;
上記のクエリ ステートメントを実行すると、次の結果が得られます-

#クエリは

319Oracle でクエリ重複排除を実行する方法 行を返しました。これは、連絡先 (

contacts

) テーブルに 319 行があることを示しています。 一意の連絡先名を取得するには、次のように DISTINCT キーワードを上記の

SELECT

ステートメントに追加します。 <pre class="brush:php;toolbar:false">SELECT DISTINCT first_name FROM contacts ORDER BY first_name;</pre> 上記のクエリを実行します。ステートメントを実行し、次の結果を取得します -

クエリは

302Oracle でクエリ重複排除を実行する方法 行を返し、連絡先 (

contacts

) テーブルを示しています。 ##17 行が重複しており、フィルタリングされています。 2. Oracle DISTINCT アプリケーションの複数列の例

下の

order_items テーブルを見てください。テーブルの構造は次のとおりです。

##次のステートメントは、order_items

テーブルからさまざまな製品 ID と数量を選択します。

SELECT
    DISTINCT product_id,
    quantity
FROM
    ORDER_ITEMS
ORDER BY product_id;
Oracle でクエリ重複排除を実行する方法上記のクエリ ステートメントを実行して、次の情報を取得します。 results-

この例では、

product_id

列と

quantityOracle でクエリ重複排除を実行する方法 列の値を両方とも一意性の評価に使用します。結果セット内の行の数。

3. Oracle DISTINCT および NULL

DISTINCT

は、NULL 値を重複値として扱います。

SELECT DISTINCT

ステートメントを使用して、複数の NULL 値を持つ列のデータをクエリする場合、結果セットには NULL 値が 1 つだけ含まれます。 サンプル データベースの locations テーブルを参照してください。構造は次のとおりです -

次のステートメントは # からのものです。 ##state列に複数の

NULL

値を含むデータを取得します: Oracle でクエリ重複排除を実行する方法

SELECT DISTINCT state
FROM locations
ORDER BY state NULLS FIRST;
上記のコード例を実行すると、次の結果が得られます-

#通り 上の図からわかるように、NULL

値のみが返されます。

推奨チュートリアル: 「Oracle でクエリ重複排除を実行する方法Oracle チュートリアル

以上がOracle でクエリ重複排除を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。