Oracle SQL navraag, koppel velde met CASE artikel
Vra
Ek is tans genereer SQL insetsel state van meer as een tafels, en in die gegenereerde data moet ek 'n case-stelling te gebruik, soos volg:
select 'INSERT INTO TABLE1 (f1, f2, f3, f4 ...) values ('
||t.f1||','
||CASE
WHEN t.f2 > 0 THEN '1'
ELSE '0'
END CASE
from table2 t , table3 t3
Maar op hierdie punt as ek wil my verklaring met ... END CASE||','|| ....
voortgaan Ek kan die navraag geen meer hardloop, as TOAD kla oor nie vind die VANAF navraag.
'n vinnige oplossing was om die output te skei in velde, dan stoor dit op teks, en wysig, maar daar moet 'n beter manier wees.
Oplossing
Gebruik EINDE in plaas van EINDE CASE
select 'INSERT INTO TABLE1 (f1, f2, f3, f4 ...) values ('
||t.f1||','
||CASE
WHEN t.f2 > 0 THEN '1'
ELSE '0'
END||','||t.f2
from table2 t , table3 t3
Ander wenke
Vir 'n paar soortgelyke situasies, die funksie "dekodeer" werk baie goed.
Jy kan in staat wees om die uitdrukking (t.f2> 0) in 'n dekodeer voed, en dan vertaal 'T' in '1 "en" F "in' 0 '.
Ek het dit nie probeer.
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow