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:
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).