🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych
3 messages
3 total messages Started by piotr.pawel.olczyk Tue, 28 Mar 2017 15:04
CASE .. WHEN .. THEN
#195294
Author: piotr.pawel.olczyk
Date: Tue, 28 Mar 2017 15:04
14 lines
1408 bytes
Witam,

Mam pytanie czy w CASE .. WHEN .. THEN po THEN może być blok instrukcji?

np.
.....
select wartosc,
case 
when wartosc >= 10 then -> tu blok instrukcji przypisujących wartości w różnych kolumnach
end,
.....
from tabela

Z góry dziękuje za odpowiedź
Re: CASE .. WHEN .. THEN
#195295
Author: Roman Tyczka
Date: Thu, 30 Mar 2017 07:43
22 lines
1351 bytes
On Tue, 28 Mar 2017 08:04:04 -0700 (PDT), piotr.pawel.olczyk@gmail.com
wrote:

> Mam pytanie czy w CASE .. WHEN .. THEN po THEN może być blok instrukcji?

Ale jakich instrukcji? Po THEN możesz tylko zwrócić wartość dla kolumny
spełniającej warunek WHEN.
 
> np.
> .....
> select wartosc,
> case 
> when wartosc >= 10 then -> tu blok instrukcji przypisujących wartości w różnych kolumnach
> end,
> .....
> from tabela

Powiedz jaki konkretnie chcesz osiągnąć efekt, tak będzie prościej.

-- 
pozdrawiam
Roman Tyczka
Re: CASE .. WHEN .. THEN
#195296
Author: wloochacz
Date: Mon, 03 Apr 2017 17:39
29 lines
1753 bytes
W dniu 2017-03-28 o 17:04, piotr.pawel.olczyk@gmail.com pisze:
> Witam,
>
> Mam pytanie czy w CASE .. WHEN .. THEN po THEN może być blok instrukcji?
Oczywiście.

> np.
> .....
> select wartosc,
> case
> when wartosc >= 10 then -> tu blok instrukcji przypisujących wartości w różnych kolumnach
> end,
> .....
> from tabela
W takim przypadku (czyli w SELECT, podmieniając wartość w locie po 
spełnieniu warunku), tak se ne da.
Wartość w kolumnie (upraszczając) to skalar i oczekuje skalarnej wartości.

Musiałbyś napisać CASE dla każdej kolumny, ale to samo możesz uzyskać 
pisząc IIF dla każdej kolumny, czyli:

select
   wartosc,
   iif(wartosc >= 10, 0, wartosc),
   iif(wartosc1 >= 10, 0, wartosc1)
itd.

-- 
wloochacz
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads