Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

青灯夜游
青灯夜游asal
2022-03-16 16:39:0141365semak imbas

Dalam Oracle, anda boleh menggunakan pernyataan SELECT dan kata kunci DISTINCT untuk mencapai penyahduplikasian pertanyaan, menapis baris pendua dalam set hasil pertanyaan dan memastikan bahawa nilai lajur atau lajur yang ditentukan dikembalikan selepas operasi pertanyaan adalah unik; Sintaks ialah "PILIH nama medan DISTINCT DARI nama jadual data;".

Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Oracle 11g, komputer Dell G3.

Dalam Oracle, anda boleh menggunakan pernyataan SELECT dan kata kunci DISTINCT untuk mencapai penyahduplikasian pertanyaan.

Oracle SELECT DISTINCT Statement

Gunakan klausa SELECT dalam pernyataan DISTINCT untuk menapis baris pendua dalam set hasil. Ia memastikan bahawa nilai yang dikembalikan dalam lajur atau lajur yang ditentukan dalam klausa SELECT adalah unik.

Yang berikut menggambarkan sintaks pernyataan SELECT DISTINCT:

SELECT DISTINCT
  column_name
FROM
  table_name;

Dalam sintaks di atas, nilai dalam lajur table_name jadual column_name akan menjadi berbanding dengan menapis pendua.

Untuk mendapatkan semula data unik berdasarkan berbilang lajur, hanya nyatakan senarai lajur dalam klausa SELECT, seperti berikut:

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

Dalam sintaks ini, column_1, Gabungan daripada nilai dalam column_2 dan column_n digunakan untuk menentukan keunikan data. Klausa

DISTINCT hanya boleh digunakan dalam pernyataan SELECT.

Sila ambil perhatian bahawa DISTINCT bukan sinonim untuk standard SQL UNIQUE. Ia adalah tabiat yang baik untuk sentiasa menggunakan DISTINCT dan bukannya UNIQUE.

Contoh Oracle DISTINCT

Berikut ialah beberapa contoh cara menggunakan SELECT DISTINCT untuk melihat cara ia berfungsi.

1. Contoh Oracle DISTINCT digunakan pada lajur

Lihat jadual Kenalan (contacts) dalam pangkalan data sampel:

Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

Contoh berikut mendapatkan semula nama semua kenalan:

SELECT first_name
FROM contacts
ORDER BY first_name;

Laksanakan pernyataan pertanyaan di atas dan dapatkan keputusan berikut -

Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

Pertanyaan mengembalikan baris 319, menunjukkan bahawa jadual kenalan (contacts) mempunyai baris 319.

Untuk mendapatkan nama kenalan yang unik, anda boleh menambah kata kunci DISTINCT pada pernyataan SELECT di atas, seperti berikut:

SELECT DISTINCT first_name
FROM contacts
ORDER BY first_name;

Laksanakan pernyataan pertanyaan di atas untuk mendapatkan Perkara berikut hasil -

Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

Pertanyaan ini mengembalikan 302 baris, menunjukkan bahawa jadual Kenalan (contacts) mempunyai 17 baris yang pendua dan mereka telah ditapis .

2. Contoh berbilang lajur aplikasi Oracle DISTINCT

Lihat jadual order_items seperti berikut:

Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

Pernyataan berikut memilih ID dan kuantiti produk yang berbeza daripada jadual order_items:

SELECT
    DISTINCT product_id,
    quantity
FROM
    ORDER_ITEMS
ORDER BY product_id;

Laksanakan pernyataan pertanyaan di atas dan dapatkan keputusan berikut -

Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

Dalam contoh ini, nilai kedua-dua lajur product_id dan quantity digunakan untuk menilai keunikan baris dalam set hasil.

3. Oracle DISTINCT dan NULL

DISTINCT menganggap nilai NULL sebagai pendua. Jika anda menggunakan pernyataan SELECT DISTINCT untuk menanyakan data daripada lajur dengan berbilang nilai NULL, set hasil hanya mengandungi satu nilai NULL.

Rujuk jadual locations dalam pangkalan data sampel, strukturnya adalah seperti berikut -

Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

Pernyataan berikut diambil daripada lajur state dengan berbilang NULLData nilai:

SELECT DISTINCT state
FROM locations
ORDER BY state NULLS FIRST;

Laksanakan kod contoh di atas dan dapatkan hasil berikut -

Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle

Seperti yang anda lihat dalam gambar di atas , hanya satu dikembalikan NULLNilai.

Tutorial yang disyorkan: "Tutorial Oracle"

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan deduplikasi pertanyaan dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn