Manual de consulta

Variables condicionales


AIX HP-UX Linux OS/2 OS/390 OS/400 PTX SUN Win NT
X X X X X X X X X

Una variable condicional es la que se establece basándose en el valor de otra serie o variable. También se le denomina operación ternaria.

La sintaxis para establecer condicionalmente una variable es:

condVar = testVar ? trueValue : falseValue

Donde:

condVar
La variable condicional que se ha de establecer.

testVar
Variable de prueba utilizada para determinar la condición. Una serie vacía se evalúa como false.

trueValue
Es el valor que se ha de utilizar si el valor de la variable de prueba es true (verdadero).

falseValue
Es el valor a utilizar si el valor de la variable de prueba es false (falso).

Ejemplo 1: Una variable condicional definida con dos valores posibles

varA = varB ?
"value_1" : "value_2"
varB es la prueba. Por ello, a varA se le asigna o bien "value_1" o "value_2", en función de que varB exista y no esté vacía.

Ejemplo 2: Variable condicional utilizada con una sentencia LIST y una cláusula WHERE

%DEFINE{
%list " AND " where_list
where_list    =  ? "custid = $(cust_inp)"
where_list    =  ? "product_name LIKE '$(prod_inp)%'"
where_clause  =  ? "WHERE $(where_list)"
%}
 
%FUNCTION(DTW_SQL) mySelect() {
   SELECT * FROM prodtable $(where_clause)
%}

Las variables condicionales y LIST resultan más efectivas cuando se utilizan conjuntamente. El ejemplo anterior muestra el modo de configurar una cláusula WHERE en el bloque DEFINE. Las variables cust_inp y prod_inp son variables de entrada HTML que se transmiten desde el navegador Web, normalmente en un formato HTML. La variable where_list es una variable LIST compuesta por dos sentencias condicionales, en las que cada sentencia contiene una variable procedente del navegador Web.

Si el navegador Web devuelve para ambas variables los valores cust_inp y prod_inp, por ejemplo, IBM y 755C, la variable where_clause es:

WHERE custid = IBM AND product_name
LIKE '755C%'

Si cualquiera de las dos variables cust_inp o prod_inp se encuentra vacía o no está definida, la cláusula WHERE cambia para convertirse en serie vacía. Por ejemplo, si prod_inp está vacía, la cláusula WHERE es:

WHERE custid = IBM

Si ambos valores se encuentran vacíos o no están definidos, la variable where_clause está vacía y no aparece ninguna cláusula WHERE en las consultas SQL que contienen $(where_clause).


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]