Vastus (07.04.2024 09:28): Ei saa.
AND tähendab, et mõlemad alamtingimused peavad olema täidetud - vaadake
AND operatsiooni tõeväärtustabelit. Oletame, et tabelis T on veerg x, mis on täisarvu tüüpi.
Kui käivitada päring:
SELECT *
FROM T
WHERE x<1 AND x>10;
, siis päringu täitmisel toimuvad kontseptuaalselt järgmised toimingud. Iga rea korral tabelist T leitakse x väärtus, pannakse see tingimuses oleva x asemele, saadakse väide ja kontrollitakse selle väite täidetust e kehtivust. Kui kontrolli tulemus on TRUE e rida vastab tingimusele, siis see rida on päringu tulemuses. Kui kontrolli tulemus on FALSE või UNKNOWN, siis rida ei ole tulemuses.
Neli näidet:
- x=5 - väide: 5<1 AND 5>10 - kumbki alamtingimus pole täidetud - vale väide e kontrolli tulemus on FALSE - rida pole tulemuses.
- x=0 - väide: 0<1 AND 0>10 - esimene alamtingimus on täidetud ja teine ei ole - vale väide e kontrolli tulemus on FALSE - rida pole tulemuses.
- x=20 - väide 20<1 AND 20>10 - teine alamtingimus on täidetud ja esimene ei ole - vale väide e kontrolli tulemus on FALSE - rida pole tulemuses.
- x on NULL - väide NULL<1 AND NULL>10 - kummagi alamtingimuse täidetust ei saa kontrollida, sest NULL on nagu kinnine karp, mille sisse ei näe - väide, mille täidetus ei saa kontrollida e kontrolli tulemus UNKNOWN - rida pole tulemuses.
Selle päringu tulemuses ei ole ühtegi rida.