Jestem zdezorientowany i nie znalazłem w Google. Czy ktoś może mi powiedzieć Co to jest nazwa operatora Sql <>
?Jaka jest nazwa operatora SQL dla "<>"?
Odpowiedz
<>
nie jest równy, jest taki sam jak !=
To prawda, że są funkcjonalnie takie same. Jednak sposób, w jaki optymalizator SQL ich używa, jest bardzo różny. = /! = są po prostu obliczane jako true/false, podczas gdy <> oznacza, że silnik musi sprawdzić, czy wartość jest większa lub mniejsza niż, co oznacza więcej wydajności. Po prostu coś do rozważenia przy pisaniu zapytań, które mogą być drogie. –
Nie wierzę, że stwierdzenie jest poprawne, operatory są funkcjonalnie równoważne, <> nie jest kombinacją < and >, jest odrębnym operatorem sam w sobie, a nie równym. Dlaczego optymalizator miałby się przejmować, gdyby był większy lub mniejszy od wartości? wystarczy sprawdzić, czy to nie jest równe. – steoleary
Udowodniłem to w kilku przechowywanych procedurach, które mamy. Wszystko zależy od indeksów istniejących w tabeli. Kiedy używasz <>, wierzę, że silnik skanuje/szuka wszystkich wartości, które są większe lub mniejsze niż. Kiedy używamy! =, Po prostu idzie na wszystkie wartości, które nie są równe temu, co zdefiniowałeś. Widzieliśmy wzrost wydajności z 30 minut do 3 minut w kilku naszych procedurach tutaj. Ponownie, wszystkie środowiska/indeksy są różne, ale staramy się unikać używania operatorów <> w indeksowanych kolumnach, ponieważ nie są one SARGable. Zobacz: http://www.sql-server-pro.com/sql-where-clause-optimization.html –
To "nie równa się". Przejrzyj listę operatorów dla używanej bazy danych i znajdź odpowiednią sekcję (zwykle "operatory porównania"). Np
jest operator not equals
. Zastosowanie:
select *
from table
where foo <> 0
To nie Równe operator, ale mam zamiar być gadatliwy, aby moja odpowiedź pisał, bo nie weszły jeszcze wystarczająco dużo znaków.
<>
oznacza nie równa samo jak !=
sprawdza, czy wartości dwa argumenty są równe, czy nie, jeśli wartości są równe, to stanie się prawdą. (a <> b) lub (a! = b) jest prawdziwe.
Zarówno <> jak i! = Są "nie równe" – beny23