Selekcja wierszy

Temat dzisiejszy należy do łatwych i przyjemnych. A dodatkowo do banalnych :)

Pod tajemniczą nazwą selekcji wierszy kryje się nic innego jak tylko warunek WHERE, który zawęża nam wynik zapytania. Nie zawsze bowiem potrzebujemy informacji o wszystkich rekordach w tabeli – to oczywiste. Dodając do instrukcji SELECT klauzulę WHERE wraz z jakimś wyrażeniem logicznym (czyli tym co będzie określało dokładniej czego szukamy) – zapytanie zwróci nam jedynie wiersze, dla których wyrażenie przyjęło wartość prawdziwą (tylko to o co zapytaliśmy i nic więcej).

Oczywiście aby ćwiczyć skuteczniej możemy wykonywać instrukcje na bazie, którą Wam udostępniłem.

 

Przykłady zastosowań (oczywiście ogranicza nas jedynie wyobraźnia i potrzeby szefa :P )

1. Wyświetl informację o klientach indywidualnych

SELECT *

FROM klienci

WHERE klt_typ = ‚IND’;

2. Wypisz opis zamówień złożonych przez klientów o numerach 1002 i 1003

SELECT zam_opis

FROM zamowienia

WHERE zam_klt_id IN (1002, 1003);

 

Formuła po klauzuli WHERE może być dowolnie skomplikowana

 

!! Musimy pamiętać o naszych kochanych NULLach – zostaną one POMINIĘTE przy selekcji jeżeli nie uwzględnimy ich po klauzuli WHERE !!

Przykładem niech będzie dajmy na to wybranie towarów objętych podatkiem innym niż 22%.

Z pozoru proste zadanie komplikuje się ponieważ kiedy napiszemy:

SELECT *

FROM towary

WHERE tow_podatek <> 22;

… to zapytanie nie zwróci wszystkich rekordów różnych od 22, NULL zostanie pominięty. A przecież może zdarzyć się tak, że jeszcze nie wpisaliśmy jaki mamy podatek lub mamy w firmie metodę, że nie wpisujemy 0 (zero) dla nieopodatkowanych produktów/usług/czegokolwiek – zwyczajnie zostawiamy puste pole, które domyślnie jest NULLem.

Poprawnie to zapytanie powinno wyglądać więc tak:

SELECT *

FROM towary

WHERE tow_podatek <> 22

OR tow_podatek is NULL;

 

Jeżeli mamy trochę wyobraźni lub gdy musimy zamienić NULL na 0 (zero), powinniśmy użyć funkcji NVL – takie zapytanie także będzie poprawne i NULLe nie zostaną pominięte:

SELECT *

FROM towary

WHERE nvl(tow_podatek,0) <> 22;

Czyli jeżeli gdzieś będzie NULL to zamieni nam się na 0.

 

Ot i cała filozofia. Bierzcie i jedzcie :)

Możesz zostawić komentarz lub wysłać sygnał trackback ze swojego bloga.

Odpowiedzi: 4 do wpisu “Selekcja wierszy”

  1. program do rozliczania pit 2013…

    Selekcja wierszy | Samouczek SQL…

  2. program pity 2014…

    Selekcja wierszy | Samouczek SQL…

  3. Dzięki wielkie, przyda się jak najbardziej taki poradnik.

  4. izolacje wodochronne…

    Selekcja wierszy | Samouczek SQL…

Zostaw odpowiedź

Subskrybuj kanał RSS Follow me on Twitter!