I have a column, called parametre
, which contains our parameters:
--option 1
TYP_SPRAC;PRIJEM_CISTY;DOKLAD;PL;MULTI;1;DOKLAD_EDI;DL FAKT
--option 2
TYP_SPRAC;PRIJEM_VRATKA;DOKLAD;PL;MULTI;1;DOKLAD_EDI;FAKT
So i want to get a output FA
or DL
, according to string PRIJEM_CISTY
or PRIJEM_VRATKA
:
--joinning to another table...
NVL(
(select distinct 'FA' from import_par p
JOIN import_doc ON p.partner=partner
where p.PARAMETRE like '%PRIJEM_VRATKA%'),
(select distinct 'DL' from import_par p
JOIN import_doc ON p.partner=partner
where p.PARAMETRE like '%PRIJEM_CISTY%')
)
It works. But is there any "better" solution for this ? For example, decode()
or RegExp()
?
CodePudding user response:
You can put the two together to query
select decode(max(
case when parametre like '%PRIJEM_VRATKA%' then 2
when parametre like '%PRIJEM_CISTY%' then 1
end), 2, 'FA', 1, 'DL')
from import_par;