Saya ingin tahu apakah ada perbedaan antara kedua not equaloperator <>dan !=di Oracle.
Adakah kasus di mana mereka dapat memberikan hasil yang berbeda atau kinerja yang berbeda?
Saya ingin tahu apakah ada perbedaan antara kedua not equaloperator <>dan !=di Oracle.
Adakah kasus di mana mereka dapat memberikan hasil yang berbeda atau kinerja yang berbeda?
Jawaban:
Tidak ada perbedaan sama sekali dalam fungsi.
(Hal yang sama berlaku untuk semua DBMS lainnya - kebanyakan mendukung kedua gaya tersebut):
Berikut adalah referensi SQL saat ini: https://docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAABC
Standar SQL hanya mendefinisikan satu operator untuk " tidak sama dengan " dan begitulah<>
IS NOTsetara / sinonom / .. dengan <>dan !=? Bisakah ketiganya digunakan dengan cara yang sama?
Sebenarnya ada empat bentuk operator ini:
<>
!=
^=
dan bahkan
¬= -- worked on some obscure platforms in the dark ages
yang sama, tetapi diperlakukan berbeda ketika pencocokan kata demi kata diperlukan (kerangka tersimpan atau kueri yang disimpan dalam cache).
NOT(x = y), mungkin !(x = y), dll?
^=(melihat sendiri pertama kali ketika saya memposting link ke manual). Tapi pendapat Anda tentang kueri yang disimpan dalam cache bagus.
Oracle, boolean bukan tipe kelas satu SQL(yang berbeda dari PL/SQL). I. e. Anda tidak dapat SELECT 1 = 1 FROM dualmenyukai di beberapa sistem lain. Jadi boolean memiliki kumpulan operatornya sendiri yang hanya valid dalam konteks logis ( WHEREatau HAVINGklausa serupa). NOTadalah satu-satunya operator negasi boolean di Oracle SQL(AFAIK).
¬= -- worked on some obscure platforms in the dark ages- ya, mereka disebut "mainframe IBM". Dari zaman ketika pria menjadi pria, wanita adalah wanita, dinosaurus menjelajahi bumi, dan komputer didinginkan dengan air. :-)
Di universitas kami diajari 'praktik terbaik' adalah menggunakan! = Saat bekerja untuk pemberi kerja, meskipun semua operator di atas memiliki fungsi yang sama.
<>sebagai operator "tidak sama dengan". Jadi saya akan mempertimbangkan untuk menggunakannya sebagai "praktik terbaik"
<>dan lebih suka !=. Terutama karena <>dalam mengatakan "kurang dari atau lebih besar dari", bagi saya, tampaknya menganggap tipe data memiliki urutan implisit (yang belum tentu benar, meskipun itu benar untuk semua tipe data SQL), sedangkan !=mengatakan "tidak sama" dalam arti yang sangat murni.
Menurut artikel ini,! = Bekerja lebih cepat