Aktywne Wpisy
masternodeBTC +319
Wskaż przedmiot/usługę/czynność, która w ostatnim czasie poprawiła na jakiejkolwiek płaszczyźnie w Twoim życiu komfort/bezpieczeństwo/zdrowie/prywatność itp.
Od ponad 3 lat rozmawiamy na tym tagu o wszelkich usprawniaczach życia. W skrócie: polecasz rzeczy które udało Ci się wprowadzić do swojego życia z tytułowego pytania a w komentarzach nawiązujemy dyskusje z których rodzą się kolejne pomysły. Każdy plusuje w komentarzach rozwiązania z których też korzysta, aby pomóc społeczności dokonywać trafnych zakupów z polecenia. Podziel się
Od ponad 3 lat rozmawiamy na tym tagu o wszelkich usprawniaczach życia. W skrócie: polecasz rzeczy które udało Ci się wprowadzić do swojego życia z tytułowego pytania a w komentarzach nawiązujemy dyskusje z których rodzą się kolejne pomysły. Każdy plusuje w komentarzach rozwiązania z których też korzysta, aby pomóc społeczności dokonywać trafnych zakupów z polecenia. Podziel się
Gomorrah +38
Jak jadę samochodem z moją dziewczyną i ona siedzi i je na miejscu pasażera i za każdym razem mam pełno okruchów na siedzeniu, jak do tego czasu poprostu strzepałem ręką i było git ale wkurza mnie to że zostawia po sobie syf, nie dość że ja wożę to jeszcze jej nie pasuje że zwróciłem jej uwagę dziś i siedziała obrażona całą drogę xD
Czy dobrze zrobiłem że zrobiłem jej awanturę? Bo jakby
Czy dobrze zrobiłem że zrobiłem jej awanturę? Bo jakby
select s.sport
, r.player
, r.result
, s.units units
from plchsports s
join plchresults r
on r.sportid = s.sportid
order by s.sport, case s.bestresult when 'HIGH' then r.result
else 10 end desc,
case s.bestresult when 'LOW' then r.result
else 10 end asc;
Z nieposortowanych danych otrzymuje wyniki jak w załączniku
Czy order by tworzy sobie dla kazdego wiersza osobno kolejność sortowania np dla "HIGH" będzie to s.sport - > r.result -> 10
a dla "LOW" s.sport - > 10 -> r.result ?
Niie do końca rozumiem w jaki sposób powoduje to posortowanie danych w podanej kolejności,
Gdybym napisał w klauzuli po prostu "Order by s.sport,10" dostałbym błąd Oracla dlaczego wiec tutaj to akceptuje
#programowanie #oracle #sql #bazydanych
czyli:
wiersze z 'HIGH' sortuje po result MALEJĄCO, inaczej przyjmuje tam 10,
następnie
wiersze z 'LOW' sortuje po result ROSNĄCO, w pozostałych przyjmuje 10.
czyli najpierw high malejąco, potem 10, potem low rosnąco (?) - zakładając, że high nie będzie poniżej 10 i w low powyżej 10
Według logiki Oracla ta 10 powinna symbolizowac ze sortuje po 10 kolumnie w zapytaniu, ale zapytanie ma tylko 5 wiec normalnie zwróciłoby blad jednak gdy używam case w Order By takiego bledu nie ma.
select
....
, case s.bestresult when 'HIGH' then r.result else 10 end desc
, case s.bestresult when 'LOW' then r.result else 10 end asc;
from ...
dodatkowo, imho, ponieważ ta wartość
10
jest przyjęta arbitralnie i dla osoby czytającej kod po raz pierwszy