ZSBD-2st-1.2-w10.tresc-1.4-Slajd14

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Klauzula WHERE

Klauzula WHERE


Podobnie jak klauzule FOR i LET klauzula WHERE jest opcjonalna.

Zadaniem klauzuli WHERE jest selekcja krotek wygenerowanych za pomocą klauzul FOR i LET, czyli zaprzestanie przetwarzania (odrzucenie) krotek, które nie spełniają zadanego warunku.

Wyrażenie zdefiniowane w klauzuli WHERE powinno być wyrażeniem logicznym i jest obliczane dla każdej z krotek. Jeśli wyrażenie jest prawdziwe, to krotka poddawana jest dalszemu przetwarzaniu, np. w ramach klauzuli RETURN lub ORDER BY. W przeciwnym wypadku krotka jest odrzucana.

Przykładowo klauzula WHERE w podzapytaniu umieszczonym we wnętrzu funkcji AVG (zapytanie to zostało przedstawione na slajdzie jako pierwsze) z dziesięciu krotek wygenerowanych przez klauzulę FOR, pozostawi tylko pięć, które dzięki klauzuli RETURN zostaną przekazane do dalszego przetwarzania za pomocą funkcji AVG. W naszym przypadku wartości te będą musiały spełnić warunek podzielności bez reszty przez 2, a zatem będą to wartości 2,4,6,8,10.

Zwróćmy uwagę, że w zapytaniu na poziomie funkcji AVG nie występują żadne z omówionych wcześniej klauzul.

Innym przykładem może być zapytanie przedstawione na slajdzie jako drugie.

W tym drugim przypadku elementy etat zostaną utworzone przez klauzulę RETURN tylko w przypadku, gdy na danym etacie znajduje się więcej niż dwóch pracowników. Odrzucenie pozostałych etatów – krotek jest realizowane za pomocą klauzuli WHERE weryfikującej liczbę elementów przypisanych do zmiennej $l.


<< Poprzedni slajd | Spis treści | Następny slajd >>