Operátor SQL „Nie je null“.

Operator Sql Nie Je Null



V SQL môžeme použiť operátor IS NOT NULL na odfiltrovanie výsledkov z databázovej tabuľky, kde hodnota konkrétneho stĺpca nie je nulová. To môže pomôcť zaistiť, že získate čisté údaje, ktoré neobsahujú žiadne chýbajúce hodnoty, čo môže spôsobiť problémy najmä vo funkciách, ktoré nespracúvajú hodnoty NULL.

Hodnota NULL sa vzťahuje na neprítomnosť údajov, ktoré nezahŕňajú prázdne reťazce, číselnú nulu alebo NaN.







V tomto návode sa naučíme, ako môžeme použiť operátor IS NOT NULL na odfiltrovanie výsledkov, ktoré obsahujú hodnoty NULL v danom dotaze.



Syntax:

Môžeme vyjadriť základnú syntax podmienky IS NOT NULL, ako je uvedené v nasledujúcom úryvku kódu:



VYBERTE stĺpec1, stĺpec2, ...
FROM table_name
WHERE názov_stĺpca NIE JE NULL;


Začneme kľúčovým slovom „select“ a špecifikujeme stĺpce, ktoré chceme získať v sade výsledkov, za ktorým nasleduje názov tabuľky, z ktorej chceme získať údaje.





Ďalej použijeme klauzulu WHERE na zavedenie filtrovania údajov na základe konkrétneho stĺpca. Nakoniec zadáme podmienku, podľa ktorej chceme filtrovať.

Príklad 1:

Pozrime sa na niekoľko príkladov, ako môžeme použiť podmienku IS NOT NULL na odfiltrovanie výsledkov.



Zvážte vzorovú databázu Sakila, ktorá je voľne dostupná na stiahnutie na oficiálnej stránke MySQL.

Predpokladajme, že chceme získať mená zákazníkov, ktorých „priezvisko“ sa nerovná nule. Na dosiahnutie tohto cieľa môžeme použiť dotaz, ako je uvedené nižšie:

vyberte
*
od
zákazník c
kde
priezvisko nie je null;


V tomto prípade dotaz vráti všetky riadky z tabuľky zákazníkov, kde hodnota stĺpca „priezvisko“ nie je nulová.

Príklad 2: Operátory AND a OR

Podmienku IS NOT NULL môžeme kombinovať s inými podmienkami pomocou operátorov AND a OR. To vytvára granulárnejšie filtrovanie.

Predpokladajme napríklad, že chceme získať zákazníkov, ktorých „priezvisko“ nie je nulové a ktorých krstné meno je Nancy alebo Holly.

Môžeme použiť dotaz, ako je znázornené v nasledujúcom:

VYBRAŤ
customer_id,
krstné meno,
priezvisko,
e-mailom
OD
zákazníka
KDE
priezvisko NIE JE NULL
A ( krstné_meno = 'Nancy'
ALEBO krstné_meno = 'Svätý' ) ;


V tomto dotaze kombinujeme podmienku IS NOT NULL s operátormi AND a OR, aby sme odfiltrovali záznamy, kde priezvisko nie je nulové alebo sa krstné meno rovná buď Nancy alebo Holly.

Výsledný výstup je nasledovný:


Ako môžete vidieť, poskytuje to spôsob vykonávania podrobnejšieho a menšieho filtrovania cieľových údajov.

Príklad 3: Použitie agregačných funkcií

V spojení s agregačnými funkciami SQL môžeme použiť aj funkciu IS NOT NULL. Môžeme ho napríklad použiť s funkciou count() na spočítanie počtu nenulových hodnôt v danom stĺpci.

Predpokladajme napríklad, že chceme určiť počet zákazníkov s nenulovými e-mailovými adresami. Dotaz môžeme použiť nasledovne:

VYBRAŤ
COUNT ( customer_id ) AS celkom
OD
zákazníka
KDE
email NIE JE NULL;


Toto by malo vrátiť počet nenulových hodnôt v stĺpci ako číselnú hodnotu takto:

Celkom |
-----+
599 |

Záver

V tomto návode sme sa naučili všetko o podmienke IS NOT NULL v SQL, aby sme odfiltrovali hodnoty null z danej sady výsledkov alebo databázovej tabuľky. Tiež sme sa naučili, ako môžeme vytvoriť zložitejšie filtrovanie kombináciou podmienky IS NOT NULL s inými podmienkami pomocou operátorov AND a OR.