Start > Kursy on-line > MS SQL Server Express

MS SQL Server Express


Inne słowa kluczowe, instrukcje i funkcje wbudowane

W tym miejscu krótko powiemy sobie o niektórych dodatkowych słowach kluczowych, które pozwalają na kształtowanie wyników kwerendy, jak i wymienimy kilka najważniejszych funkcji dostępnych w SQL Serverze (ze względu na ich mnogość, nie będziemy omawiać każdej - jedynie kilka kluczowych, najczęściej wykorzystywanych).

Przejdźmy więc do elementów zapytania. TOP, za za zadanie zwracać wybraną liczbę pierwszych rekordów z zapytania. Innymi słowy jeśli chcielibyśmy wyświetlić pierwsze 2 produkty, których sprzedaż była największa w naszej tabeli, którą używamy podczas tego kursu, zapytanie wyglądałoby następująco:




A gdybyśmy chcieli uzyskać dwa produkty o najmniejszej sprzedaży, wystarczy zamienić kolejność sortowania w zapytaniu:



Kolejnym istotnym wyrażeniem, które wzbogaca budowane zapytania jest konstrukcja typu CASE. Możemy np. zamienić klientów z numerami od 1 do 3 na określenie "Klient A", klientowi "Klient 4" przypisać "Klient B" natomiast pozostałym słowo "Inni klienci":



W zapytaniach, możliwe są także różnego rodzaju obliczenia matematyczne. Dozwolone są standardowe operatory matematyczne: "+", "-", "/" i "*" wraz z nawiasami. Wykorzystajmy nasze tabele i obliczmy wartość sprzedaży do ilości dodając informację o cenie i przemnażając te dane przez siebie:



W przypadku kiedy byśmy chcieli łączyć teksty, możemy użyć operatora "+":



Oczywiście mamy też do dyspozycji różnego rodzaju funkcje agregujące: sum(nazwa pola) - dla sumowania, count(nazwa pola) - dla zliczania, avg(nazwa pola) - dla uśredniania, min(nazwa pola) - dla określania minimum oraz max(nazwa pola) - dla określania maksimum. Ważne aby pamiętać o podaniu pola, wg którego dokonujemy agregacji w klauzuli GROUP BY w końcowej części zapytania - jeśli o tym zapomnimy, program zwróci nam na to uwagę w polu "Messages" w dole ekranu.

Istotniejsze funkcje, o których warto także wspomnieć, gdyż są dosyć często używane to:

CAST - funkcja służąca do zamieniania formatów pól podczas np. budowania warunków i filtrów. Może się zdarzyć, że musimy zbudować filtr, który porównuje dane o różnych typach, lub musimy przekształcić daną podobną do daty, w datę, aby dokonać na niej stosownych obliczeń. Wówczas z pomocą przychodzi właśnie ta funkcja, której postać wygląda następująco:

CAST(wyrażenie AS typ)


Przykładowo, jeśli mielibyśmy pole o nazwie "data_cala" i chcieli ją przekształcić na typ "smalldatetime" musielibyśmy napisać:

CAST(data_cala AS smalldatetime)


Zupełnie inną grupą są funkcje daty i czasu. Najważniejsze z nich to DATEADD i DATEDIFF.
Pierwsza z nich powoduje dodanie (odjęcie) do podanej daty określonej liczby jednostek czasu i podaje wynikową datę i czas. Jej postać to:

DATEDIFF(jednostka czasu, liczba jednostek czasu, data wyjściowa)


Najważniejsze jednostki czasu jakich możemy użyć to: year (rok), quarter (kwartał), month (miesiąc), dayofyear (dzień w roku), day (dzień), week (tydzień), weekday (dzień tygodnia), hour (godzina), minute (minuta), second (sekunda). Jeśli więc do daty i godziny "2010-10-01 18:00:01" chcielibyśmy dodać 3 dni, to napisalibyśmy:

DATEDIFF(day, 3, "2010-10-01 18:00:01").


Identyczne argumenty (w sensie jednostek czasu) są dostępne w drugiej funkcji DATEDIFF pozwalającej na obliczanie różnic w określonych jednostkach czasu pomiędzy dwiema datami. Jej postać to

DATEADD(jednostka czasu, data początkowa, data końcowa)


Odrębną grupę stanowią funkcje tekstowe. Są bardzo zbliżone do zastosowań tego typu funkcji np. w programie Excel (postać). Do najważniejszych można zaliczyć: LEFT, RIGHT czy też SUBSTRING. Dwie pierwsze zwracają podaną liczbę znaków łańcucha licząc od lewej lub prawej strony. Ich postać to (na przykładzie LEFT):

LEFT(wyrażenie/tekst, liczba znaków)



Funkcja SUBSTRING służy natomiast do wybierania fragmentu tekstu i ma postać:

SUBSTRING(wyrażenie/tekst, znak początkowy, liczba znaków)


Czyli użycie w postaci:

SUBSTRING("tekst", 2, 2)


da w wyniku słowo "ek". SQL Server posiada w swoich zasobach jeszcze wiele mniej lub bardziej skomplikowanych funkcji, pozwalających na obliczanie różnorodnych rzeczy. My jednak poprzestaniemy na tych kilku. Zainteresowanych czytelników odsyłam do strony producenta (j. angielski). Osobiście zawsze szukam tych informacji wpisując w Google formułę "t-sql functions" - pożądany wynik pojawia się na pierwszym miejscu :)