Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana klausa 'dalam' bekerja di oracle

Benar (tetapi perhatikan bahwa IN adalah operator, bukan klausa dan berfungsi seperti ini di SQL secara umum, tidak hanya untuk Oracle).

where 1 not in (null,1)

setara dengan:

where 1 != null and 1 != 1

yang seharusnya ditulis sebagai:

WHERE 1 NOT IN (NULL, 1)

dan

WHERE 1 <> NULL AND 1 <> 1

yang sama dengan:

WHERE (1 <> NULL) AND (1 <> 1)

yang mengevaluasi ke:

WHERE UNKNOWN AND FALSE

dan selanjutnya sebagai:

WHERE FALSE

Jadi, ini tidak mengembalikan baris dengan benar.

Perhatikan bahwa jika Anda memiliki WHERE 1 NOT IN (NULL, 2) , itu akan mengevaluasi ke WHERE UNKNOWN (ditinggalkan sebagai latihan) dan tidak ada baris yang akan dikembalikan juga.



  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 batas waktu kueri JDBC Oracle diterapkan?

  2. Ubah ukuran nama tabel/kolom/indeks di Oracle 11g atau 12c

  3. Operator pivot Oracle

  4. kesalahan sintaks saat mendeklarasikan variabel dalam prosedur pl/sql

  5. Menghitung usia dari ulang tahun dengan pemicu Oracle plsql dan memasukkan usia ke dalam tabel