İki not equaloperatör arasında <>ve !=Oracle'da herhangi bir fark olup olmadığını bilmek istiyorum .
Farklı sonuçlar veya farklı performans verebilecekleri durumlar var mı?
İki not equaloperatör arasında <>ve !=Oracle'da herhangi bir fark olup olmadığını bilmek istiyorum .
Farklı sonuçlar veya farklı performans verebilecekleri durumlar var mı?
Yanıtlar:
Hayır, işlevsellikte hiçbir fark yoktur.
(Aynısı diğer tüm DBMS için de geçerlidir - çoğu her iki stili de destekler):
İşte mevcut SQL referansı: https://docs.oracle.com/database/121/SQLRF/conditions002.htm#CJAGAABC
SQL standardı yalnızca " eşit değildir " için tek bir operatör tanımlar ve bu<>
IS NOTiçin / .. / dengi aynı anlama <>ve !=? Üçü de aynı şekilde kullanılabilir mi?
Aslında, bu operatörün dört biçimi vardır :
<>
!=
^=
ve hatta
¬= -- worked on some obscure platforms in the dark ages
bunlar aynıdır, ancak birebir eşleşme gerektiğinde farklı şekilde ele alınır (depolanmış anahatlar veya önbelleğe alınmış sorgular).
NOT(x = y)belki !(x = y), vb. Gibi varyasyonlar ?
^=(kılavuzun bağlantısını ilk kez yayınladığımda kendim gördüm). Ancak, önbelleğe alınmış sorgularla ilgili görüşünüz iyi.
Oracle, boolean birinci sınıf bir tür değildir SQL(bundan farklıdır PL/SQL). I. e. Eğer olamaz SELECT 1 = 1 FROM dualdiğer bazı sistemlerde gibi. Mantıksal ifadenin sadece mantıksal bağlamlarda (geçerli operatörlerin kendi belirledik Yani WHEREya HAVINGveya benzer maddeleri). NOTOracle'ın SQL(AFAIK) tek boole olumsuz operatörüdür .
¬= -- worked on some obscure platforms in the dark ages- evet, onlara "IBM ana bilgisayarları" deniyordu. Erkeklerin erkek, kadınların kadın olduğu, dinozorların dünyayı dolaştığı ve bilgisayarlar su ile soğutulduğu günlerden beri. :-)
Üniversitede bize 'en iyi uygulama' öğesinin, işverenler için çalışırken! = Kullanmak olduğu öğretildi, ancak yukarıdaki tüm operatörler aynı işlevselliğe sahip.
<>"eşit değildir" operatörü olarak tanımlanır. Bu yüzden bunu "en iyi uygulama" olarak kullanmayı düşünüyorum
<>ve tercih edemiyorum !=. Esas olarak <>, bana göre "küçüktür veya büyüktür" ifadesinde, veri türünün örtük bir sıralamaya sahip olduğunu varsayıyor gibi göründüğü için (bu, tüm SQL veri türleri için doğru olsa da bu mutlaka doğru değildir), oysa !="eşit değil" çok saf bir anlamda.
Bu makaleye göre! = Daha hızlı performans gösterir