Rumah  >  Artikel  >  Apakah penggunaan berbeza dalam oracle?

Apakah penggunaan berbeza dalam oracle?

百草
百草asal
2023-07-11 09:35:565708semak imbas

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".

Apakah penggunaan berbeza dalam oracle?

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:

Apakah penggunaan berbeza dalam oracle?

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:

Apakah penggunaan berbeza dalam oracle?

Pertanyaan mengembalikan 302 baris, menunjukkan bahawa jadual kenalan mempunyai 17 baris Pendua, mereka telah ditapis . .

Laksanakan pernyataan pertanyaan di atas, Kami mendapat hasil berikut

Dalam contoh ini, nilai kedua-dua product_id dan lajur kuantiti digunakan untuk menilai keunikan baris dalam set hasil. Apakah penggunaan berbeza dalam oracle?

3. Oracle DISTINCT dan NULL

DISTINCT 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:

Apakah penggunaan berbeza dalam oracle?

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. Apakah penggunaan berbeza dalam oracle?

Atas ialah kandungan terperinci Apakah penggunaan berbeza 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