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

青灯夜游
リリース: 2022-03-16 16:39:13
オリジナル
41233 人が閲覧しました

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

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

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

クエリは

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!