但是如果我选择0,我想得到1和2的组合。我该怎么做
CASE
使用此选项:
SELECT rua.DATUM_DOKUMENTA DATUM_DOKUMENTA,
rua.VRSTA_promjene VRSTA_promjene,
COUNT (*) broj_racuna,
SUM (NVL (rua.duguje, 0)) UKUPNO_BLAGAJNA,
zs.vodovod
FROM nve_racuni_uplate rua,
nve_potrosaci ptr,
nve_zone_snabdjevanja zs,
nve_vodomjerna_mjesta vm
WHERE rua.RADNA_GODINA = :P_GODINA
AND ( (PTR.VODOMJERNO_MJESTO = VM.SIFRA AND VM.ZBIRNI = 'N')
OR (PTR.VODOMJERNO_MJESTO = VM.SIFRA_ZBIRNOG))
AND zs.vodovod IN (CASE
WHEN (NVL ( :p_vodovod, zs.vodovod)) = 1
THEN 1
WHEN (NVL ( :p_vodovod, zs.vodovod)) = 2
THEN 2
ELSE
zs.vodovod
END)
AND ( ( :p_vrsta IS NULL AND rua.vrsta_promjene IN ('1', '2'))
OR ( :p_vrsta IS NOT NULL AND rua.vrsta_promjene = :p_vrsta))
GROUP BY rua.DATUM_DOKUMENTA, rua.VRSTA_promjene, zs.vodovod
ORDER BY rua.DATUM_DOKUMENTA, rua.VRSTA_promjene, zs.vodovod
还要注意,不应该使用旧的SQL连接技术。您必须使用ANSI sql连接。