iif() en un query

jcastro
21 de Abril del 2005
es posible usar el iif en un query?
por ejemplo :

Select (iif(createdate = "",sysdate,createdate)) as fecha from tabla

Oracle me dice que falta un parentesis pero sera porque no acepta el iif???
Gracias

trazom
21 de Abril del 2005
No puedes usar IF, SQL te permite utilizar la sentencia CASE para realizar la logica del IF:

SELECT country_name, region_id,
CASE region_id WHEN 1 THEN 'Europe'
WHEN 2 THEN 'America'
WHEN 3 THEN 'Asia'
ELSE 'Other' END Continent
FROM countries
WHERE country_name LIKE 'I%';

COUNTRY_NAME REGION_ID CONTINE
-------------------- ---------- -------
Israel 4 Other
India 3 Asia
Italy 1 Europe

Rodolfo Reyes
21 de Abril del 2005
Otra opcion aparte del CASE es el DECODE

Ejemplo:

select decode(ESTADO,1,'ACTIVO',2,'INACTIVO','SUPENDIDO')
FROM TABLA

Si estado es igual a 1 devuelve activo,
Si estado es igual a 2 devuelve Inactivo,
Si no es ninguno de los anteirores devuelve suspendido.