Apakah ada perbedaan antara "! =" Dan "<>" di Oracle Sql?


Jawaban:


110

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


14
! = lebih mudah disimpan dalam file XML!
Mark McLaren

Apakah IS NOTsetara / sinonom / .. dengan <>dan !=? Bisakah ketiganya digunakan dengan cara yang sama?
gila tentang rapi

50

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


2
Dan variasi seperti NOT(x = y), mungkin !(x = y), dll?
MatBailie

1
Menarik! Saya tidak tahu tentang ^=(melihat sendiri pertama kali ketika saya memposting link ke manual). Tapi pendapat Anda tentang kueri yang disimpan dalam cache bagus.
a_horse_with_no_name

1
@Dems: in 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).
Quassnoi

3
¬= -- 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. :-)
Bob Jarvis - Kembalikan Monica

1

Di universitas kami diajari 'praktik terbaik' adalah menggunakan! = Saat bekerja untuk pemberi kerja, meskipun semua operator di atas memiliki fungsi yang sama.


14
Standar SQL (hanya) didefinisikan <>sebagai operator "tidak sama dengan". Jadi saya akan mempertimbangkan untuk menggunakannya sebagai "praktik terbaik"
a_horse_with_no_name

2
Menarik. Mungkin harus memeriksa semua hal lain yang saya telah diajarkan adalah dari standar SQL atau tidak. Terima kasih telah menunjukkannya.

11
Mungkin warisan C saya keluar, tapi saya tidak tahan <>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.
Jeffrey Kemp

1
Standar pengkodean seringkali bergantung pada pemberi kerja. Jika atasan Anda tidak memiliki standar pengkodean, ada baiknya tim memilih yang publik.
Denise Skidmore

-3

Menurut artikel ini,! = Bekerja lebih cepat

http://www.dba-oracle.com/t_not_equal_operator.htm


18
Meskipun populer, sayangnya situs web tersebut bukan sumber yang dapat diandalkan untuk banyak topik. Masalah ini telah dibahas sebelumnya di sini . Terlepas dari karunia itu, tidak ada yang bisa membuat kasus uji yang menunjukkan perbedaan kinerja yang nyata. Tetapi tawaran saya masih berlaku - Saya akan memberi Anda hadiah 500 poin jika Anda dapat membuat kasus uji yang menunjukkan bahwa! = Lebih cepat daripada operator tidak setara lainnya.
Jon Heller
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.