Penggunaan Oracle yang berbeza boleh menapis baris pendua dalam set hasil untuk memastikan bahawa nilai lajur atau lajur yang ditentukan dikembalikan dalam klausa "PILIH" adalah unik. Sintaks ialah "PILIH lajur 1, lajur 2, lajur 3... daripada nama jadual".
Persekitaran pengendalian artikel ini: Sistem Windows 10, Oracle versi 19c, komputer DELL G3.
Oracle Distinct Usage
SELECT DISTINCT boleh digunakan untuk menapis baris pendua dalam set hasil untuk memastikan bahawa nilai lajur atau lajur yang ditentukan dikembalikan dalam klausa SELECT adalah unik.
Hanya gunakannya untuk mengembalikan bilangan rekod unik, bukannya menggunakannya untuk mengembalikan semua nilai rekod unik. Sebabnya ialah perbezaan hanya boleh diselesaikan dengan pertanyaan gelung berganda, yang sudah pasti akan menjejaskan kecekapan tapak web dengan jumlah data yang sangat besar secara langsung.
distinct akan menyusun set hasil yang dikembalikan, jadi sebaiknya gunakannya bersama-sama dengan pesanan oleh untuk meningkatkan kecekapan.
Oracle SELECT DISTINCT Usage
Sintaks pernyataan SELECT DISTINCT adalah seperti berikut:
SELECT DISTINCT column_1 FROM table_name;
Dalam sintaks di atas, nilai dalam lajur_1 lajur jadual table_name akan dibandingkan untuk menapis pendua.
Untuk mendapatkan semula data unik berdasarkan berbilang lajur, hanya nyatakan senarai lajur dalam klausa PILIH seperti yang ditunjukkan di bawah:
SELECT DISTINCT column_1, column_2, ... FROM table_name;
Dalam sintaks ini, gabungan nilai dalam lajur_1, lajur_2 dan lajur_n digunakan untuk menentukan keunikan daripada jantina data.
Klausa DISTINCT hanya boleh digunakan dalam pernyataan SELECT.
Sila ambil perhatian bahawa tiada perbezaan antara DISTINCT dan UNIQUE dalam Oracle Ia adalah sinonim mengikut standard ANSI, dan UNIQUE adalah penggunaan khusus Oracle, menggunakan DISTINCT yang mengikut standard ANSI adalah pilihan yang lebih baik .
Contoh Oracle DISTINCT
Berikut ialah beberapa contoh cara menggunakan SELECT DISTINCT untuk melihat cara ia berfungsi.
1. Contoh ringkas Oracle DISTINCT
Berikut ialah jadual
字段1 字段2 id name 1 a 2 b 3 c 4 c 5 b
Jika anda ingin menggunakan satu pernyataan untuk menanyakan semua data dengan nama bukan pendua, anda mesti menggunakan berbeza untuk mengalih keluar rekod pendua yang tidak diperlukan. Jadi mula-mula masukkan:
select *, count(distinct name) from table group by name
Kemudian kita masukkan:
id name count(distinct name)
dan dapatkan keputusan:
1 a 1 2 b 1 3 c 1
2. Contoh aplikasi Oracle DISTINCT pada lajur
Contoh berikut mendapatkan semula nama semua kenalan:
SELECT first_name FROM contacts ORDER BY first_name;
kenyataan, Keputusan berikut diperoleh:
Pertanyaan mengembalikan 319 baris, menunjukkan bahawa jadual kenalan mempunyai 319 baris.
Untuk mendapatkan nama kenalan yang unik, anda boleh menambah kata kunci DISTINCT pada pernyataan PILIH di atas, seperti yang ditunjukkan di bawah:
Pertanyaan mengembalikan 302 baris, menunjukkan bahawa jadual kenalan mempunyai 17 baris Pendua, mereka telah ditapis . .
Laksanakan pernyataan pertanyaan di atas, Kami mendapat hasil berikutDalam contoh ini, nilai kedua-dua product_id dan lajur kuantiti digunakan untuk menilai keunikan baris dalam set hasil.
3. Oracle DISTINCT dan NULLDISTINCT menganggap nilai NULL sebagai nilai pendua. Jika anda menggunakan pernyataan SELECT DISTINCT untuk menanyakan data daripada lajur dengan berbilang nilai NULL, set hasil hanya mengandungi satu nilai NULL. Sila rujuk jadual lokasi dalam pangkalan data sampel, strukturnya adalah seperti berikut: Pernyataan berikut mendapatkan semula data dengan berbilang nilai NULL dari lajur keadaan:SELECT DISTINCT product_id, quantity FROM ORDER_ITEMS ORDER BY product_id;Melaksanakan kod sampel di atas, anda dapatkan keputusan berikut:
Seperti yang anda lihat dalam gambar di atas, hanya nilai NULL dikembalikan.
Atas ialah kandungan terperinci Apakah penggunaan berbeza dalam oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!