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 🙂

Dołącz do newslettera już dziś!
Zero spamu - tylko wartościowe treści!
Musisz już lecieć?
Zostaw swój adres e-mail i dołącz do BEZPŁATNYCH WEBINARÓW dotyczących SQLa!
  • „Jak uczyć się SQLa?” – 4 października
  • „SQL dla testerów” – 12 października