SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

SQLite KECUALI Operator

Dalam SQLite, EXCEPT operator dapat digunakan untuk membuat senyawa SELECT pernyataan yang mengembalikan subset baris yang dikembalikan oleh SELECT kiri yang tidak dikembalikan oleh SELECT right yang benar .

Contoh

Misalkan kita memiliki tabel berikut:

SELECT * FROM Teachers;
SELECT * FROM Students;

Hasil:

TeacherId  TeacherName
---------  -----------
1          Warren     
2          Ben        
3          Cathy      
4          Cathy      
5          Bill       
6          Bill       

StudentId  StudentName
---------  -----------
1          Faye       
2          Jet        
3          Spike      
4          Ein        
5          Warren     
6          Bill       

Kita dapat menggunakan EXCEPT operator untuk mengembalikan guru yang bukan juga siswa:

SELECT TeacherName FROM Teachers
EXCEPT
SELECT StudentName FROM Students;

Hasil:

TeacherName
-----------
Ben        
Cathy      

Jadi kita hanya mendapatkan nilai yang muncul di Teachers tabel yang juga tidak muncul di Students meja.

Kita bisa mendapatkan hasil yang berbeda, tergantung tabel mana yang di kiri dan mana yang di kanan. Berikut adalah contoh yang menempatkan Students tabel di sebelah kiri dan Teachers di sebelah kanan:

SELECT StudentName FROM Students
EXCEPT
SELECT TeacherName FROM Teachers;

Hasil:

StudentName
-----------
Ein        
Faye       
Jet        
Spike      

Kali ini kami mendapatkan siswa yang bukan juga guru.

EXCEPT SQLite operator mengembalikan baris yang berbeda saja. Jadi dalam contoh kita, hanya satu baris yang dikembalikan untuk Cathy , meskipun ada dua guru dengan nama itu.

Beberapa RDBMS lain memungkinkan kami menyertakan duplikat dalam hasil dengan menerima ALLoptional opsional kata kunci dengan EXCEPT operator, tetapi SQLite tidak (setidaknya, tidak pada saat penulisan). Jangan ragu untuk memeriksa dokumentasi SQLite jika ada perubahan.

Alternatif

Anda bisa mendapatkan hasil yang sama tanpa menggunakan EXCEPT operator. Misalnya, kita dapat menulis ulang contoh pertama kita menjadi ini:

SELECT 
    DISTINCT TeacherName
FROM Teachers t 
WHERE NOT EXISTS (SELECT StudentName FROM Students s
WHERE t.TeacherName = s.StudentName);

Hasil:

TeacherName
-----------
Ben        
Cathy      

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memilih kolom tertentu dari database kamar yang diberikan parameter tertentu dalam kueri kamar?

  2. Fungsi Agregat SQLite

  3. Apa tujuan dari fungsi String[] whereArgs int delete (String table, String whereClause, String[] whereArgs)?

  4. Bagaimana cara menyimpan database sqlite langsung di sdcard

  5. Hapus SQLite