Baza danych:
use A_Zawodnicy select 4 select 4+2 select 4, imie, nazwisko from zawodnicy select * from zawodnicy -- str 7 cw 1-3 /* wiele linii */ select imie [xyz], nazwisko , 4 [x], wzrost, wzrost+4 as [nowy Wzrost] from zawodnicy -- operatory: + - * / ( ) -- str 8 cw: 4-5 select imie, nazwisko, wzrost*1.46 [max dł nart] from zawodnicy select imie, nazwisko, waga / ((wzrost/100.0)*(wzrost/100.0)) [bmi] from zawodnicy select 10/3 , 10.0/3, 10/3.0 select 1.0* waga / wzrost from zawodnicy select 'nazywam się: ' + imie + ' ' + nazwisko from zawodnicy -- cw 6 str 8 select nazwisko + ', ' + imie + '(' + kraj + ')' from zawodnicy select ROUND(10.0/3,2) -- Funkcje wbudowane select imie, nazwisko, round( waga / ((wzrost/100.0)*(wzrost/100.0)),2) bmi from zawodnicy -- format - zmiana formatu select abs(-3), power(2,3) select waga / POWER(wzrost/100.0,2) from zawodnicy select sign(5) select 10/3 , 10 % 3 select * from zawodnicy -- dla każdego zawodnika wypisz jak bardzo różni się jego wzrost -- od 170 cm (np dla zawodników ze wzrostem 168 lub 172 wynik to 2) select imie, nazwisko , abs(wzrost-170) from zawodnicy -- funkcje formatujące select 10.0/3 , format(10.0/3, '00.##') select imie, nazwisko , round(waga / POWER(wzrost/100.0,2),2), format(waga / POWER(wzrost/100.0,2),'0.00') from zawodnicy select imie, data_ur, format(data_ur,'yy "urodzony" dd MMMM') from zawodnicy -- str, cw 24-25 select imie, nazwisko, FORMAT(data_ur,'dd.MM.yyyy "r."') from zawodnicy select imie, nazwisko, FORMAT(data_ur,'dddd dd.MMMM.yyyy "r."','pl-pl') from zawodnicy select imie, nazwisko, FORMAT(data_ur,'dddd dd.MMMM.yyyy "r."','zh-cn') from zawodnicy select convert(decimal, 10) / 3 select 'ala ma kota' + convert(varchar, 4) select 'ala ma kota' + FORMAT(4,'0') select GETDATE() from zawodnicy select imie, FORMAT(data_ur,'yyyy'), YEAR(data_ur) , MONTH(datA_ur), day(data_ur) from zawodnicy select convert(datetime,DATEFROMPARTS(2000,4,15)) + 2 select DATEADD(d,2,datefromparts(2000,4,15)) select GETDATE() + 2 select DATEADD(m,2, getdate()) select imie, DATEADD(m,2,data_ur) from zawodnicy select DATEDIFF(m,getdate(),data_ur) from zawodnicy -- zadanie dla kazdego zawodnika podaj ile ma lat select imie, nazwisko, DATEDIFF(yyyy,data_ur,getdate()), year(getdate()) - year(data_ur) from zawodnicy -- ile zostało nam dni do konca roku od dzisiaj select DATEDIFF(dd,getdate(),datefromparts(YEAR(getdate()),12,31)) -- podaj nazwe miesiaca w ktorym urodzil się dany zawodnik select imie, nazwisko, data_ur, FORMAT(data_ur,'MMMM','pl-pl') from zawodnicy -- (pomocnicze) podaj datę równą pierwszemu dnia miesiąca po miesiącu --urodzenia zawodnika select imie, nazwisko, data_ur , DATEADD(m,1,data_ur), day( DATEADD( dd, -1, dateadd(m,1, DATEFROMPARTS( year(data_ur), month(data_ur), 1) ) ) ) from zawodnicy -- ile dni ma miesiac w ktorym sie urodzil dany zawodnik -- w jaki dzien tygodnia wypada w aktualnym roku wigila select format(DATEFROMPARTS(year(getdate()),12,24),'dddd','pl-pl') -- jaki dzien tygodnia bedzie za 2 miesiace i 5 dni select format(dateadd(dd,5,DATEADD(m,2,getdate())),'dddd','pl-pl') -- za ile dni ma urodziny dany zawodnik select imie, data_ur, DATEDIFF(dd, getdate(), datefromparts(year(getdate()),month(data_ur),day(data_ur))) from zawodnicy -- podaj wiek dokladnie z dokładnością co do dnia czyli -- uwzględniając to czy zawodnik miał czy jeszcze nie miał urodzin select imie, data_ur, DATEDIFF(yy,data_ur,getdate())- (sign(DATEDIFF(dd, getdate(), datefromparts( year(getdate()), month(data_ur), day(data_ur) ) ) )+1 )/2 from zawodnicy -- funkcje tekstowe select len('ala ma kota'), UPPER('a'), LOWER('B'), CHARINDEX('ma','ala ma kota'), SUBSTRING('ala ma kota', 5,2), Rtrim(LTRIM(' ala ma kota')), left('ala ma kota',3) -- str15 cw 29-31 select imie + ' '+ left(nazwisko,1) + LOWER(SUBSTRING(nazwisko,2,len(nazwisko)-1)) from zawodnicy select imie + ' ' + LEFT(nazwisko,1) + '.' from zawodnicy select imie + ' ' + nazwisko + ' waży ' + FORMAT(waga,'00') + ' kg.', imie + ' ' + nazwisko + ' waży ' + convert(varchar,waga) + ' kg.' from zawodnicy -- dodatkowe: --1) dla kazdego zawodnika wypisz środkową literę jego imienia i nazwiska select imie, SUBSTRING(imie,len(imie)/2,1), nazwisko, SUBSTRING(nazwisko,len(nazwisko)/2,1) from zawodnicy --2) Dla kazdego zawodnika wypisz 3 pierwsze litery miesiąca w którym się urodził select imie, data_ur, LEFT(FORMAT(data_ur,'MMMM','pl-pl'),3) from zawodnicy --3) Jeśli zawodnik urodził się w miesiącu w którym jest litera 'r' to dodaj do jego wagi 1 kg . select imie, FORMAT(data_ur,'MMMM','pl-pl'),waga [waga przed], sign(CHARINDEX('r',FORMAT(data_ur,'MMMM','pl-pl'))) + waga [waga po] from zawodnicy --4) wiedząc, że jest funkcja Replace np: select REPLACE('ala','a','o'), która zamienia jeden -- ciąg na drugi podmień w imionach wszystkie litery a na o natomiast litery o na a -- np: ala stanie się olo a olo stanie się ala select imie, REPLACE(REPLACE(REPLACE(imie,'a','!'),'o','a'),'!','o') from zawodnicy --5) wiedząc, że jest funkcja select REVERSE('xyz'), która odwraca nam ciag -- podaj podciąg z imienia od pierwszej litery 'e' do ostatniej litery 'e' -- jezeli imie nie ma wcale litery 'e' - wypisz cale imie select imie, CHARINDEX('e',imie), len(imie)- charindex('e',REVERSE(imie))+1, SUBSTRING(imie,CHARINDEX('e',imie),len(imie)- charindex('e',REVERSE(imie))+1-CHARINDEX('e',imie)+1) from zawodnicy -- iif select IIF(1=2,'tak','nie') -- dla kazdego zawodnika wypisz czy jego wzrost jest wysoki czy niski -- w zaleznosci od tego czy jest wyzszy niz 170 cm select imie, wzrost, IIF(wzrost > 170,'wysoki','niski') from zawodnicy -- wypisz czy wzrost zwodnika jest wysoki/sredni/niski -- wiedząc , że średni to od 165 do 170 włącznie select imie, wzrost, IIF(wzrost >170,'wysoki',iif(wzrost<165,'niski','sredni')) from zawodnicy select imie, wzrost , case when wzrost > 170 then 'wysoki' when wzrost < 165 then 'niski' else 'sredni' end from zawodnicy select * from trenerzy select imie_t, data_ur_t, IIF(data_ur_t is null,'pusta','zapelniona') from trenerzy -- str 17 , cw 32- 36 select imie,nazwisko, waga/POWER(wzrost/100.0,2), IIF(waga/POWER(wzrost/100.0,2)>20,'ok','zle') from zawodnicy select imie,nazwisko, waga/POWER(wzrost/100.0,2), case when waga/POWER(wzrost/100.0,2) > 20 then 'ok' else 'zle' end from zawodnicy select imie_t, data_ur_t, IIF(data_ur_t is null , 'bd',format(data_ur_t,'dd.MM.yyyy')) from trenerzy --35 select case when kraj = 'pol' then 'pan ' when kraj = 'ger' then 'herr ' when kraj = 'aut' then 'herr ' when kraj = 'usa' then 'mr ' else '' end + imie + ' ' + nazwisko from zawodnicy select imie, nazwisko, data_ur, iif( getdate() < datefromparts(year(getdate()),month(data_ur),day(data_ur)), 'jeszcze nie','juz mial') from zawodnicy -- dodatkowe: --1) dla kazdego zawodnika wypisz jego albo imie albo nazwisko, w zależności co jest dłuższe select IIF(len(imie)>len(nazwisko),imie,nazwisko) from zawodnicy --2) dla kazdego zawodnika wypisz czy urodził się w dniu parzystym czy nieparzystym select imie, data_ur, iif(DAY(data_ur) % 2 =0 , 'parzyste','np') from zawodnicy --3) dla kazdego zawodnika wypisz porę roku w jakiej się urodził SELECT imie, nazwisko, CASE when MONTH(data_ur) >= 3 and MONTH(data_ur) <= 5 then 'wiosna' when MONTH(data_ur) in (6,7,8) then 'lato' when MONTH(data_ur) in (9,10,11) then 'jesien' else 'zima' END FROM zawodnicy