Jakub Strojek

Jakub Strojek Specjalista ds.
wdrożeń

Temat: zapytanie sql oracle

Witam potrzebuje informacji jak zamienic wartosc zwracana z zapytania w formie liczb od 0 do 6 w tym wypadku chodzi o wartosc "war.wart_zn" jak zrobić żeby np. cyfra 0 było wyświetlane xxx a jako cyfra 1 yyy?

select w.dt_wykon, w.nazwa, war.wart_zn from wyk_elecz w, wykelecz_wartwyn war
where
war.idk_kl_wyn='ZZOBSMIEJW'
and w.NAZWA='Obserwacja wkłuć obwodowych'
and w.ID_ELECZ='WKO'
and war.NR_DANEJ=1
and war.T_WART='K'
and w.T_ELECZ='KAPZA'
and war.ID_WYK_ELECZ=w.ID_WYK_ELECZ
and w.STAN='W'

konto usunięte

Temat: zapytanie sql oracle

Jakub Strojek:
Witam potrzebuje informacji jak zamienic wartosc zwracana z zapytania w formie liczb od 0 do 6 w tym wypadku chodzi o wartosc "war.wart_zn" jak zrobić żeby np. cyfra 0 było wyświetlane xxx a jako cyfra 1 yyy?

select w.dt_wykon, w.nazwa, war.wart_zn from wyk_elecz w, wykelecz_wartwyn war
where
war.idk_kl_wyn='ZZOBSMIEJW'
and w.NAZWA='Obserwacja wkłuć obwodowych'
and w.ID_ELECZ='WKO'
and war.NR_DANEJ=1
and war.T_WART='K'
and w.T_ELECZ='KAPZA'
and war.ID_WYK_ELECZ=w.ID_WYK_ELECZ
and w.STAN='W'

Tak jak już ktoś pisał DECODE będzie odpowiedni Tomek P. edytował(a) ten post dnia 20.03.13 o godzinie 12:34

Temat: zapytanie sql oracle

Wg mnie bardziej przejrzyście i wygodnie można też zrobić to CASE'em:

select w.dt_wykon,
w.nazwa,
war.wart_zn,
case war.wart_zn
when 0 then 'xxx'
when 1 then 'yyy'
-- itd when <wartosc> then <zwracana_wartosc>
else 'zzz' -- tu default
end
from wyk_elecz w, wykelecz_wartwyn war
where war.idk_kl_wyn = 'ZZOBSMIEJW'
and w.NAZWA = 'Obserwacja wkłuć obwodowych'
and w.ID_ELECZ = 'WKO'
and war.NR_DANEJ = 1
and war.T_WART = 'K'
and w.T_ELECZ = 'KAPZA'
and war.ID_WYK_ELECZ = w.ID_WYK_ELECZ
and w.STAN = 'W'

konto usunięte

Temat: zapytanie sql oracle

Dokładnie tak jak napisał Pan Wojciech.
Daniel Cabaj

Daniel Cabaj Lider Zespołu

Temat: zapytanie sql oracle

Inna propozycją jest utworzenie i dołączenie tabeli słownikowej, z której po złączeniu odpowiednie wartości będą pobierane.

konto usunięte

Temat: zapytanie sql oracle

CASE może jest bardziej przejrzysty na pierwszy rzut oka, ale dla mnie jednak bardziej efektywny i przejrzysty jest DECODE, a do tego można to zrobić w jednej linijce:

select w.dt_wykon,
w.nazwa,
war.wart_zn,
DECODE(war.wart_zn, 0, 'xxx', 1, 'yyy' , 'zzz') wart_zn
from wyk_elecz w, wykelecz_wartwyn war
where war.idk_kl_wyn = 'ZZOBSMIEJW'
and w.NAZWA = 'Obserwacja wkłuć obwodowych'
and w.ID_ELECZ = 'WKO'
and war.NR_DANEJ = 1
and war.T_WART = 'K'
and w.T_ELECZ = 'KAPZA'
and war.ID_WYK_ELECZ = w.ID_WYK_ELECZ
and w.STAN = 'W'

Następna dyskusja:

Oracle SQL PLUS export do CSV




Wyślij zaproszenie do