Podczas budowania zapytań SQL często się zdarza, że są one bardzo złożone i ciężko połapać się o co chodzi. Języki obiektowe umożliwiają nam wydzielić część kodu do metody. Rozbijamy więc metodę na kilka mniejszych, dzięki temu kod staje się dużo bardziej czytelny i dużo łatwiej z nim pracować.
W SQLu wiele zapytań będzie złożonych i będą zawierały zapytania zagnieżdżone. Część z nich można sobie „wyrzucić” do zmiennej. Dzięki takiemu działaniu odchudzamy bardzo mocno nasze zapytanie, rozbijamy je na mniejsze części, a co najważniejsze zdecydowanie łatwiej jest je przetestować.
Deklaracja zmiennej odbywa się w następujący sposób
declare @nazwa_zmiennej typ_zmiennej
Natomiast przypisanie wartości robimy tak:
select @nazwa_zmiennej = zapytanie
Przykładem wykorzystania będzie uzależnienie wyników od średniej. Normalnie napisalibyśmy tak:
SELECT nazwa_produktu FROM Produkty WHERE cena > (SELECT AVG(cena) FROM Produkty WHERE status='w sprzedaży')
Dużo łatwiejszym w napisaniu, czytaniu i wydajniejszym rozwiązaniem będzie takie z użyciem zmiennej:
declare @srednia decimal(5,2) SELECT @srednia = AVG(cena) FROM Produkty WHERE status='w sprzedaży' SELECT nazwa_produktu FROM Produkty WHERE cena > @srednia
Taki zapis jest dużo czytelniejszy, ponieważ patrząc na to, co chcemy pobrać z bazy od razu widać, że uzależniamy cenę od średniej. Kolejną zaletą jest możliwość łatwiejszego sprawdzenia poprawności zwracanych danych, gdyż nie musimy w środku zapytania zaznaczać tego zagnieżdżonego. Zapytanie powinno wykonać się też szybciej, ale o tym innym razem 🙂
Najnowsze komentarze