sql - values - ¿Cómo usar select con if condition en oráculo?
oracle case when null (2)
Mi requisito es obtener un número de una consulta compleja y verificar si num = desiredNum.
Si es igual a desiredNum, entonces debo realizar otro conjunto de declaraciones select,
¿Hay alguna manera de lograr esto en una consulta en lugar de escribir una función?
P.ej:
select case when val =2
then select val1 from table1
else ''false''
from (select val from table)
Es posible ??
No soy 100% Entiendo lo que necesitas. Pero creo que podrías usar una unión para hacer esto:
create table theValues ( theValue integer)
create table table1 ( value1 integer)
create table table2 ( value2 integer)
INSERT INTO theValues (thevalue) VALUES (2)
INSERT INTO table1 ( value1 ) VALUES (17)
INSERT INTO table2 ( value2 ) VALUES (8)
SELECT value1 from table1 WHERE EXISTS (SELECT theValue from theValues WHERE theValue != 2)
UNION ALL
SELECT value2 from table2 WHERE EXISTS (SELECT theValue from theValues WHERE theValue = 2)
En este caso, el "número mágico" es 2. Si la consulta de la tabla theValues devuelve 2, obtendrá los resultados del resultado de la tabla 2, de lo contrario obtendrá el resultado de la tabla 1.
Saludos, Daniel
select case when val=2 then val1 else val end as thevalue
from table1
Supongo que quisiste decir que val y val1 son ambos de la misma tabla, pero cuando val = 2, usa val1 en su lugar. Si en realidad tenía dos tablas, y ambas tienen solo un registro cada una, entonces
select
case when val=2
then (select val1 from table1)
else ''false''
end
from table