| AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
| X | X | X | X | X | X | X | X |
O valor de uma variável condicional é condicionalmente definido baseado no valor de outra variável ou cadeia. Essa é também chamada de uma operação ternária.
test ? valorReal : valorFalso
Exemplo 1: Se varB existe, varA=valor_1, caso contrário varA=valor_2.
varA=varB ? "valor_1" : "valor_2"
Exemplo 2: Neste caso, varname é nulo se valor_1 for nulo, caso contrário varname é definido a valor_1.
varname = ? "$(value_1)"
Exemplo 3: Variáveis Condicional e LIST são mais efetivas quando usadas em conjunto. Este exemplo mostra como definir uma lista WHERE no bloco DEFINE. As variáveis cust_inp e prod_inp são variáveis de entrada HTML passadas de CGI, geralmente a partir de um formulário HTML. A variável where_list é uma variável LIST feita de duas construções condicionais, cada instrução contendo uma variável de CGI.
%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)
%}
Se CGI retornar valores de ambas variáveis cust_inp e prod_inp, por exemplo, IBM e 755C, a where_clause é:
WHERE custid = IBM AND product_name LIKE '755C%'
Se a variável cust_inp ou prod_inp for nula, ou não definida, a cláusula WHERE se altera para omitir o valor nulo. Por exemplo, se prod_inp for nulo, a cláusula WHERE é:
WHERE custid = IBM
Se ambos valores forem nulos ou indefinidos, a variável where_clause é nula e nenhuma cláusula WHERE aparece em consultas SQL contendo $(where_clause).