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;".
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.
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
.
Berikut ialah beberapa contoh cara menggunakan SELECT DISTINCT
untuk melihat cara ia berfungsi.
Lihat jadual Kenalan (contacts
) dalam pangkalan data sampel:
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 -
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 -
Pertanyaan ini mengembalikan 302
baris, menunjukkan bahawa jadual Kenalan (contacts
) mempunyai 17
baris yang pendua dan mereka telah ditapis .
Lihat jadual order_items
seperti berikut:
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 -
Dalam contoh ini, nilai kedua-dua lajur product_id
dan quantity
digunakan untuk menilai keunikan baris dalam set hasil.
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 -
Pernyataan berikut diambil daripada lajur state
dengan berbilang NULL
Data nilai:
SELECT DISTINCT state FROM locations ORDER BY state NULLS FIRST;
Laksanakan kod contoh di atas dan dapatkan hasil berikut -
Seperti yang anda lihat dalam gambar di atas , hanya satu dikembalikan NULL
Nilai.
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!