Wpis z mikrobloga

#sql #oracle #bazydanych Tworzę sobie zapytanie na bazie danych oracle dodające kolumny (pivot). W selekcie mam coś taką linijkę:
max(case when a.PARAMETR = 'PRODUCENT' THEN a.WARTOSCLICZ ELSE ' ' END) PRODUCENT,

Problem jest że teraz wyciąga mi dane tylko z tabeli a.WARTOŚĆ
LICZ, a chciałbym zrobić warunek że jeśli a.WARTOŚCLICZ jest pusta to żeby brał z tabeli a.WARTOŚĆNUM (bo parametr może być różnego typu). Czy da sie takie coś zrobić za pomocą samego SQLa?
  • 4
@darco3: @nuker92: takich warunków = '' to się wystrzegaj bo jeśli wartość w kolumnie będzie null-em to warunek nie zostanie spełniony, bezpieczniej jest w case zrobić warunek "a.WARTOSCLICZ is null THEN a.WARTOSCNUM". Możesz też wykorzystać w sql funkcję decode(a.wartosclicz, null, a.wartoscnum, a.wartosc_licz) - mniej tekstu i bardziej przejrzyście.