ホームページ >データベース >Oracle >Oracleで重複データを削除する方法

Oracleで重複データを削除する方法

青灯夜游
青灯夜游オリジナル
2022-03-17 13:10:309282ブラウズ

Oracle では、Distinct キーワードを使用して重複データを削除し、結果セット内の重複行をフィルタリングできます。このキーワードにより、SELECT 句で返される指定された列の値が一意であることが保証されます。構文は「SELECT DISTINCT フィールド名 FROM データテーブル名;」です。

Oracleで重複データを削除する方法

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

Oracle では、Distinct キーワードを使用して重複データを削除できます。

Oracle Distinct キーワード

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

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

SELECT DISTINCT
  column_name
FROM
  table_name;

上記の構文では、table_namethe column_name # テーブルの ## 列の値が比較され、重複が除外されます。

複数の列に基づいて一意のデータを取得するには、次のように

SELECT 句に列のリストを指定するだけです。

SELECT
    DISTINCT column_1,
    column_2,
        ...
FROM
    table_name;
この構文では、 ## の組み合わせです。 #column_1

column_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;

上記のクエリ ステートメントを実行すると、次の結果が得られます。

##クエリ返された Oracleで重複データを削除する方法319

行は、連絡先 (

contacts) テーブルに 319 行があることを意味します。 一意の連絡先名を取得するには、次のように DISTINCT

キーワードを上記の

SELECT ステートメントに追加します。

SELECT DISTINCT first_name
FROM contacts
ORDER BY first_name;
上記のクエリを実行します。ステートメントを実行し、次の結果を取得します -

クエリは Oracleで重複データを削除する方法302

行を返し、連絡先 (

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

order_items

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

次のステートメントは、

order_itemsOracleで重複データを削除する方法 テーブルからさまざまな製品 ID と数量を選択します。

SELECT
    DISTINCT product_id,
    quantity
FROM
    ORDER_ITEMS
ORDER BY product_id;

上記のクエリ ステートメントを実行すると、次の結果が得られます。

この例では、

product_idOracleで重複データを削除する方法 列と

quantity

列の値は両方とも、結果内の行の一意性を評価するために使用されます。セット。 3. Oracle DISTINCT および NULL

DISTINCT

は、

NULL

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

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

列に複数の Oracleで重複データを削除する方法NULL

値を含むデータを取得します:

SELECT DISTINCT state
FROM locations
ORDER BY state NULLS FIRST;
上記のコード例を実行すると、次の結果が得られます- #通り 上の図からわかるように、

NULL

値のみが返されます。

Oracleで重複データを削除する方法推奨チュートリアル: 「

Oracle チュートリアル

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

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