Cały dzień 1

</pre>
use A_Zawodnicy

select 5

select 7, 2+3 , 10.0/3

select 7+1, imie, nazwisko
from zawodnicy

select imie [Imie2],
nazwisko,waga, waga+5 as "nowa Waga"
from zawodnicy

select * , imie_t
from trenerzy

-- komentarz jednolinowy

/* komentarz
wielo
linowy
*/

-- wypisz wszystkie dane ze wszystkich tabelek i zapoznaj się z danymi

-- str 8 cw 4,5

select imie, nazwisko, wzrost* 1.46 [max dł nart]
from zawodnicy

select imie, nazwisko,
format(round(waga/((wzrost/100.0)*(wzrost/100.0)),2),'0.00') bmi
from zawodnicy

select imie, nazwisko,
format(waga/power(wzrost/100.0,2),'0.00') bmi
from zawodnicy

select wzrost/100 , wzrost from zawodnicy

-- funkcje matematyczne
-- abs, ceiling, floor, rand, round(x,y), power(x,y), sqrt , sign

select abs(-3), ceiling(2.3), floor(2.7), RAND(), sqrt(9), sign(0)

-- funkcje inne(uniwersalna bo dotyczy liczb,dat i tekstu)
-- format(x,y) -&gt; x- co formatujemy a y - w jaki sposob (jako tekst)
select 10.0/3 , round(10.0/3,2), format(10.0/3,'00.000')

-- funkcje tekstowe

select imie +' ' + nazwisko , waga+3 , imie+ CONVERT(varchar,3) , imie+ format(3,'0')
from zawodnicy

-- len, upper, lower, charindex, substring, ltrim, rtrim, left,right

select len('jan'), upper('jan'), lower('Jan'),
CHARINDEX('a','jan'), SUBSTRING('ala ma kota',5,2), ltrim(rtrim(' jan ')),
left('jan',2), right('jan',1)

--str 15 , cw w ramce
--* Zadanie dodatkowe:
-- funkcja replace(x,y,z) zamienia w ciągu "x" ciag "y" na nowy ciąg "z"

-- cw 29

select imie, upper(left(nazwisko,1)) + LOWER(SUBSTRING(nazwisko,2,len(nazwisko)-1))
from zawodnicy

select imie, upper(left(nazwisko,1)) + LOWER(SUBSTRING(nazwisko,2,len(nazwisko)))
from zawodnicy

-- w access jest funkcje strconv -&gt; ona zamienia pierwszą lietere na dużą pozostałe na małe

select substring('jan',2,10)

select imie, nazwisko, left(imie,1) + '. ' + left(nazwisko,1) + '.'
from zawodnicy

select imie + ' '+ nazwisko + ' waży ' + format(waga,'0') + ' kg.'
from zawodnicy

-- 1) wypisz wszystkie nazwiska zawodników ale zamień ze sobą a z e
-- czyli litera a na e , natomiast litera e na a.

select replace(REPLACE(nazwisko,'A','E'),'E','A')
from zawodnicy

select replace(replace(REPLACE(nazwisko,'A','*'),'E','A'),'*','E')
from zawodnicy
-- 2) wypisz BMI zawodników ale separatorem dziesiętnym niech będzie "," (przecinek)

select replace(format(waga/power(wzrost/100.0,2),'0.00'),'.',',')
from zawodnicy

-- 3) dla każdego zawodnika wypisz środkową literę imienia

select SUBSTRING(imie, len(imie)/2,1), imie
from zawodnicy

-- funkcje związane z przetwarzaniem dat

select GETDATE(),
DATEFROMPARTS(2019,2,20),
DATEADD(m,2, GETDATE()),
day(getdate()),
MONTH(getdate()),
YEAR(getdate()),
convert(date,getdate())

-- 1) dla kazdego zawodnika wypisz ile ma lat

select imie, nazwisko, year(getdate())-YEAR(data_ur)
from zawodnicy

-- 2) podaj kiedy w aktualnym roku przypadaja ich urodziny

select format(year(getdate()),'0') + '-' + format(month(data_ur),'00') + '-' + format(day(data_ur),'00')
from zawodnicy

select DATEFROMPARTS(year(getdate()),month(data_ur),day(data_ur))
from zawodnicy

-- 3) podaj ile dni ma miesiac w ktorym sie urodzili

select imie, nazwisko, data_ur,
DATEDIFF(d,
DATEFROMPARTS(year(data_ur),month(data_ur),1),
DATEADD(m,1, DATEFROMPARTS(year(data_ur),month(data_ur),1)))
from zawodnicy

select EOMONTH(getdate(),1)

select imie, nazwisko, data_ur,
day(EOMONTH(data_ur,0))
from zawodnicy

/* obsługowane wyrażenia dla funkcji dateadd:
/*
year, yyyy, yy = Year
quarter, qq, q = Quarter
month, mm, m = month
dayofyear = Day of the year
day, dy, y = Day
week, ww, wk = Week
weekday, dw, w = Weekday
hour, hh = hour
minute, mi, n = Minute
second, ss, s = Second
millisecond, ms = Millisecond*/
*/

-- iif

-- &gt;, &lt;, = , &lt;&gt; , &lt;= , &gt;=

select imie, nazwisko, waga, wzrost, iif(wzrost&gt;170,'wysoki','niski') typ
from zawodnicy

select imie, nazwisko, waga, wzrost, iif(wzrost&gt;170,'wysoki',wzrost) typ
from zawodnicy

--iif(a&gt;b,iif(y&lt;x,1,2),3)

--str 18

select imie, nazwisko,
iif(waga/power(wzrost/100.0,2)&gt;=20,'waga ok','waga zła')
from zawodnicy

select imie_t,nazwisko_t,data_ur_t,
iif(data_ur_t is null,'nieznana','znana')
from trenerzy

select imie_t, nazwisko_t, data_ur_t,
iif(data_ur_t is null,'brak danych',convert(varchar, data_ur_t))
from trenerzy

select imie_t, nazwisko_t, data_ur_t,
iif(data_ur_t is null,'brak danych',format(data_ur_t,'dd-MM-yyyy'))
from trenerzy

-- format dla dat

select format(GETDATE(),'ddMMyyyy')

select format(GETDATE(),'d-MM-yyyy roku')

select format(GETDATE(),'d-MM \mie\siaca')

select format(GETDATE(),'d-MM "miesiaca"')

select format(GETDATE(),'MMMM ddd dddd yy','pl-pl')
select format(GETDATE(),'MMMM ddd dddd yy','zh-cn')

-- d, M, y , m ,s, -to znaki specialne
-- pozostałe znaki to znaki zwykłe

select
iif(kraj='pol','Pan ',
iif(kraj='ger','Herr ',
iif(kraj='aut','Herr ',
iif(kraj='usa','Mr ','')))) + imie + ' ' + nazwisko
from zawodnicy

select
iif(kraj='pol','Pan ',
iif(kraj='ger','Herr ',
iif(kraj='aut','Herr ',
iif(kraj='usa','Mr ',null)))) + imie + ' ' + nazwisko
from zawodnicy

select
case
when kraj='pol' then 'Pan '
when kraj in ('ger','aut') then 'Herr '
-- when kraj='ger' or kraj='aut' then 'Herr '
-- when kraj='aut' then 'Herr '
when kraj='usa' then 'Mr'
else ''
end + imie + ' ' + nazwisko
from zawodnicy

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
case kraj
when 'pol' then 'Pan '
when 'ger' then 'Herr '
when 'aut' then 'Herr '
when 'usa' then 'Mr'
else ''
end + imie + ' ' + nazwisko
from zawodnicy

select imie, nazwisko, data_ur,
iif(
convert(int,DATEFROMPARTS(year(getdate()),month(data_ur),day(data_ur))-
GETDATE())&gt;0,'bedzie mial','mial')
from zawodnicy

select *
from zawodnicy
where (wzrost&gt;170 and wzrost&lt; 175) or kraj='pol'

select *
from zawodnicy
where kraj = 'Pol' collate Polish_CS_AS

select serverproperty('collation')

SELECT DATABASEPROPERTYEX('A_Zawodnicy', 'Collation') SQLCollation;

select *
from zawodnicy
where kraj = 'aut' or kraj = 'ger'

select *
from zawodnicy
where kraj in ('ger','aut')

select *
from zawodnicy
where waga/power(wzrost/100.0,2)&lt;20

select imie, nazwisko, waga/power(wzrost/100.0,2) bmi
from zawodnicy
where waga/power(wzrost/100.0,2)&lt;20

select *
from zawodnicy
where year(getdate())-year(data_ur)&gt;35

select *
from zawodnicy
where len(imie)=4

select *
from trenerzy
where data_ur_t is null

select *
from zawodnicy
where MONTH(data_ur) &lt;=3 or MONTH(data_ur)&gt;=11

select *
from zawodnicy
where MONTH(data_ur) &lt;3 or MONTH(data_ur)=3 or MONTH(data_ur)&gt;=11

select *
from zawodnicy
where MONTH(data_ur) &lt;4 or MONTH(data_ur)&gt;10

select *
from zawodnicy
where CHARINDEX('n',nazwisko)&gt;0 or CHARINDEX('w',nazwisko)&gt;0

select *
from zawodnicy
where CHARINDEX('n',nazwisko) + CHARINDEX('w',nazwisko)&gt;0

-- like

select *
from zawodnicy
where nazwisko like '%n%' or nazwisko like '%w%'

select *
from zawodnicy
where imie like 'Mar_in'

select *
from zawodnicy
where imie like 'Mar[tc]in'

select *
from zawodnicy
where imie like 'Mar[^t]in'

select *
from zawodnicy
order by kraj desc, wzrost

select imie, nazwisko, wzrost, kraj
from zawodnicy
order by 4,1

select * from zawodnicy
order by 5

select *
from zawodnicy order by wzrost, id_zawodnika

select *
from zawodnicy
order by kraj

select *
from zawodnicy
order by data_ur desc

select imie + ' ' + nazwisko + '('+ kraj + ')'
from zawodnicy
order by nazwisko

select *
from trenerzy
order by data_ur_t desc

select * , waga/power(wzrost/100.0,2) bmi
from zawodnicy
order by bmi

select imie ,nazwisko --3
from zawodnicy --1
where kraj = 'pol' --2
order by wzrost --4

select top 50 percent imie ,nazwisko, wzrost
from zawodnicy
order by wzrost

select top 1 *
from zawodnicy
order by wzrost desc

select top 1 *
from zawodnicy
where kraj='pol'
order by waga desc

select *
from zawodnicy
order by wzrost desc
offset 3 rows
fetch next 1 rows only