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