Dalam Oracle, anda boleh menggunakan kata kunci Distinct untuk mengalih keluar data pendua dan menapis baris pendua dalam set hasil Kata kunci ini boleh memastikan bahawa nilai lajur atau lajur yang dinyatakan 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 kata kunci Distinct untuk mengalih keluar data pendua.
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
column_name
jadual akan dibandingkan untuk 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 hasil berikut-
Pertanyaan mengembalikan 319
baris, 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
di bawah:
: order_items
SELECT DISTINCT product_id, quantity FROM ORDER_ITEMS ORDER BY product_id;
dan product_id
kedua-duanya digunakan untuk menilai keunikan baris dalam set hasil. quantity
menganggap nilai DISTINCT
sebagai pendua. Jika anda menggunakan pernyataan NULL
untuk menanyakan data daripada lajur dengan berbilang nilai SELECT DISTINCT
, set hasil hanya mengandungi satu nilai NULL
. NULL
dalam pangkalan data sampel, strukturnya adalah seperti berikut - locations
dengan berbilang state
Data nilai: NULL
SELECT DISTINCT state FROM locations ORDER BY state NULLS FIRST;
Nilai. NULL
Tutorial Oracle"
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar data pendua dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!