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

Z Studia Informatyczne
Wersja z dnia 14:23, 10 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Klauzula LET

Klauzula LET


Klauzula LET także może zawierać jedną lub wiele zmiennych. Różnica w stosunku do FOR polega na tym, że wiązanie zmiennych odbywa się bez iteracji na podstawie wyrażenia przypisanego zmiennej. Innymi słowy wartością zmiennej użytej w klauzuli LET są wszystkie węzły wskazywane przez wyrażenie przypisane do zmiennej.

Przykładowo pierwsze zapytanie na slajdzie wygeneruje wynik przedstawiony po jego prawej stronie. Zwróćmy uwagę na to, że nie doszło do żadnych iteracji. Do zmiennych $i i $j zostały przypisane odpowiednio wyrażenia 1,2 i 3,4.

Wynika to z faktu, iż zarówno do zmiennej $i jak i $j przypisany został las węzłów określony na podstawie wyrażeń przypisanych zmiennym.

Zwróćmy uwagę, że w omawianym zapytaniu nie występuje klauzula FOR. Takie zapytania oczywiście są możliwe i generują zawsze jedną krotkę.

Zmienne z klauzuli LET są dodawane do krotek wygenerowanych przez klauzulę FOR.

Przeanalizujmy, przykładowo drugie zapytanie istniejące na slajdzie.

Klauzula FOR utworzy krotki ze zmiennymi $e, których wartością będą ciągi znaków umieszczone w elementach etat w dokumencie pracownicy.xml. Krotek będzie tyle ile różnych wartości tekstowych w elementach etat w dokumencie pracownicy.xml. Dla każdej wartości zmiennej $e, klauzula LET przypisze do zmiennej $l las elementów pracownik, posiadających w podelemencie etat wartość zgodną z ciągiem znaków przypisanym do zmiennej $e. W efekcie ewaluacji powyższego zapytania możemy otrzymać wynik w postaci przedstawionej na dole slajdu.


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