Oracle - Control de flujo en la ejecucion de un select

 
Vista:

Control de flujo en la ejecucion de un select

Publicado por seimi (2 intervenciones) el 03/11/2006 18:47:03
Hola.
Como puedo hacer que dependiendo de una variable (con dos posibles valores) me ejecute un select u otro?
Seria algo asi (en caso de que pudiera usarse un if):
if var=1 then select .......
else
select .........
end if

Gracias y hasta pronto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Control de flujo en la ejecucion de un select

Publicado por Ricardo (84 intervenciones) el 06/11/2006 14:41:49
Tendrias que considerar si lo que querés es SQL o PL-SQL. El IF se puede usar en
PL-SQL, no en SQL puro, pero hay una forma de "Simular" esto, en SQL por ejemplo:

set feed off
set ver off
set pause off

accept var1 number prompt "Ingrese valor de la variable [1 o 2]:"

select 'Valor de variable 1' texto,&var1 valor from dual where &var1=1
union all
select 'Valor de variable 2' texto,&var1 valor from dual where &var1=2
/

Ejemplo de salida de este script:

SQL>@ejemsql
Ingrese valor de la variable [1 o 2]:1

TEXTO VALOR
------------------- ---------
Valor de variable 1 1
SQL>@ejemsql
Ingrese valor de la variable [1 o 2]:2

TEXTO VALOR
------------------- ---------
Valor de variable 2 2

Esto es solo un ejemplo y acá, dado que estás haciendo una union entre 2 selects
debes tener en cuenta que deberían tener las mismas cantidades y tipos de columnas. De no poder ser asi, podes cubrir las columnas faltantes con valores null. Lo importante es que en los dos select las cada columna tenga el mismo "alias" en los dos selects.

Saludos
Ricardo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar