検索
ホームページよくある問題Oracleでのdistinctの使用法は何ですか?

Oracleでのdistinctの使用法は何ですか?

Jul 11, 2023 am 09:35 AM
oracledistinct

Oracle の独自の使用法により、結果セット内の重複行をフィルタリングして、「SELECT」句で返される指定された列の値が一意であることを確認できます。構文は「SELECT DISTINCT カラム 1、カラム 2、カラム 3... テーブル名から」です。「distinct」は返された結果セットをソートし、「order by」と組み合わせて使用​​すると効率が向上します。

Oracleでのdistinctの使用法は何ですか?

#この記事の動作環境: Windows 10 システム、Oracle バージョン 19c、DELL G3 コンピューター。

Oracle Distinct の使用法

SELECT DISTINCT を使用すると、結果セット内の重複行をフィルタリングして、SELECT 句で指定された 1 つ以上の列の値が確実に一致するようにすることができます。個性的。 。

これを使用して、非重複レコードのすべての値を返すのではなく、非重複レコードの数を返すためにのみ使用してください。その理由は、distinct は二重ループ クエリによってのみ解決できるためであり、これは間違いなく、非常に大量のデータを含む Web サイトの効率に直接影響します。

distinct は返された結果セットを並べ替えるため、効率を向上させるために order by と組み合わせて使用​​することをお勧めします。

Oracle SELECT DISTINCT の使用法

SELECT DISTINCT ステートメントの構文は次のとおりです。

SELECT DISTINCT
    column_1
        FROM
    table_name;

上記の構文では、column_1 の値がtable_name テーブルの列は、重複をフィルターするために比較されます。

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

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

この構文では、column_1、column_2、および column_n の値が組み合わせは、データの一意性を判断するために使用されます。

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

Oracle では DISTINCT と UNIQUE に違いはないことに注意してください。これらは同義語です。DISTINCT は ANSI 標準に従い、UNIQUE は Oracle 固有です。移植の観点からは、次の DISTINCT を使用することをお勧めします。 ANSI 規格。

Oracle DISTINCT の例

SELECT DISTINCT の使用例をいくつか見て、その動作を確認しましょう。

1. Oracle DISTINCT の簡単な例

以下は表です

字段1     字段2
 id       name
 1         a
 2         b
 3         c
 4         c
 5         b

1 つのステートメントを使用して、重複しない名前を持つすべてのデータをクエリする場合は、個別の重複レコードを使用する必要があります。冗長な重複レコードを削除します。最初に次のように入力します:

select *, count(distinct name) from table group by name

次に、次のように入力します:

id name count(distinct name)

そして結果を取得します:

1 a 1
2 b 1
3 c 1

2. 列

に適用される Oracle DISTINCT の例すべての連絡先の名前を取得する例:

SELECT first_name
FROM contacts
ORDER BY first_name;

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

Oracleでのdistinctの使用法は何ですか?

クエリは 319 行を返しました。 、連絡先 (contacts) テーブルに 319 行があることを示します。

一意の連絡先名を取得するには、以下に示すように、上記の SELECT ステートメントに DISTINCT キーワードを追加できます。

Oracleでのdistinctの使用法は何ですか?

クエリで返された行 302 は、次のことを意味します。連絡先テーブルの 17 行は重複しており、フィルターされています。

2. Oracle DISTINCT アプリケーションの複数列の例

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

Oracleでのdistinctの使用法は何ですか?

次のステートメントは order_items からのものです。テーブル内の異なる製品 ID と数量を選択してください:

SELECT
    DISTINCT product_id,
    quantity
FROM
    ORDER_ITEMS
ORDER BY product_id;

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

Oracleでのdistinctの使用法は何ですか?

この例では、product_id 列と数量列の値を使用して、結果セット内の行の一意性を評価します。

3. Oracle DISTINCT と NULL

DISTINCT は、NULL 値を重複値として扱います。 SELECT DISTINCT ステートメントを使用して、複数の NULL 値を持つ列のデータをクエリする場合、結果セットには NULL 値が 1 つだけ含まれます。

サンプル データベースの location テーブルを参照してください。構造は次のとおりです。

Oracleでのdistinctの使用法は何ですか?

次のステートメントは、状態から複数の NULL 値を含むデータを取得します。列:

SELECT DISTINCT state
FROM locations
ORDER BY state NULLS FIRST;

上記のコード例を実行すると、次の結果が得られます:

Oracleでのdistinctの使用法は何ですか?

上の図からわかるように、NULL 値のみが返されます。 。

以上がOracleでのdistinctの使用法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール