Oracle では、Distinct キーワードを使用して重複データを削除し、結果セット内の重複行をフィルタリングできます。このキーワードにより、SELECT 句で返される指定された列の値が一意であることが保証されます。構文は「SELECT DISTINCT フィールド名 FROM データテーブル名;」です。
このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。
Oracle では、Distinct キーワードを使用して重複データを削除できます。
SELECT
ステートメントの DISTINCT
句を使用して、結果セット内の重複行をフィルタリングします。これにより、SELECT
句で指定された列 (複数可) に返される値が一意であることが保証されます。
次に、SELECT DISTINCT
ステートメントの構文について説明します。
SELECT DISTINCT column_name FROM table_name;
上記の構文では、table_name
the column_name # テーブルの ## 列の値が比較され、重複が除外されます。
SELECT 句に列のリストを指定するだけです。
SELECT DISTINCT column_1, column_2, ... FROM table_name;この構文では、 ## の組み合わせです。 #column_1
、column_2
、column_n
の値は、データの一意性を判断するために使用されます。
句は、SELECT
ステートメントでのみ使用できます。
は SQL 標準 UNIQUE
の同義語ではないことに注意してください。常に UNIQUE
の代わりに DISTINCT
を使用することをお勧めします。 Oracle DISTINCT の例
の使用例をいくつか示し、その動作を確認します。 1. 1 つの列に適用された Oracle DISTINCT の例
) テーブルを表示します:
次の例では、すべての連絡先の名前を取得します。
SELECT first_name FROM contacts ORDER BY first_name;
上記のクエリ ステートメントを実行すると、次の結果が得られます。
##クエリ返された 319
行は、連絡先 (contacts) テーブルに
319 行があることを意味します。
一意の連絡先名を取得するには、次のように
DISTINCT
SELECT ステートメントに追加します。
SELECT DISTINCT first_name FROM contacts ORDER BY first_name;
上記のクエリを実行します。ステートメントを実行し、次の結果を取得します -
クエリは 302
行を返し、連絡先 (contacts) テーブルを示しています。 ##17
行が重複しており、フィルタリングされています。 2. Oracle DISTINCT アプリケーションの複数列の例
下の
order_items テーブルからさまざまな製品 ID と数量を選択します。
SELECT DISTINCT product_id, quantity FROM ORDER_ITEMS ORDER BY product_id;
上記のクエリ ステートメントを実行すると、次の結果が得られます。
この例では、
product_id 列と
quantity 列の値は両方とも、結果内の行の一意性を評価するために使用されます。セット。 3. Oracle DISTINCT および NULL
値を重複値として扱います。 SELECT DISTINCT
ステートメントを使用して、複数の NULL
値を持つ列のデータをクエリする場合、結果セットには NULL
値が 1 つだけ含まれます。 サンプル データベースの
locations
テーブルを参照してください。構造は次のとおりです -
列に複数の NULL
値を含むデータを取得します:SELECT DISTINCT state FROM locations ORDER BY state NULLS FIRST;
上記のコード例を実行すると、次の結果が得られます-
#通り 上の図からわかるように、NULL
値のみが返されます。推奨チュートリアル: 「
Oracle チュートリアル」
以上がOracleで重複データを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。