🚀 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.olcz Tue, 28 Mar 2017 08:04
CASE .. WHEN .. THEN
#188461
Author: piotr.pawel.olcz
Date: Tue, 28 Mar 2017 08:04
15 lines
309 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
#188462
Author: Roman Tyczka
Date: Thu, 30 Mar 2017 09:43
21 lines
532 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
#188463
Author: wloochacz
Date: Mon, 03 Apr 2017 19:39
28 lines
743 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