Operadores Lógicos Os seguintes operadores lógicos logical operators são suportados, listados aqui em sua precedência de avaliação: NOT Operação Boolean NOT Boolean NOT ~ Operação Boolean NOT Boolean NOT AND Operação Boolean AND Boolean AND OR Operação Boolean OR Boolean OR Agrupando Expressões Lógicas Quando uma expressão lógica complexa possui múltiplas condições OR, é preciso agrupar as condições OR e ordená-las da menos complexa para a mais complexa a fim de obter um processamento mais eficiente. Se a probabilidade de ocorrência for conhecida, é preciso ordená-la da mais provável para a menos provável, pois como qualquer parte de uma condição OR composta é avaliada como TRUE, o resto da expressão pode ser ignorado. No entanto, isso não é garantido. Isso também é verdade para a ordem das condições da função MAP. Sempre que as operações lógicas AND e OR são misturadas em uma mesma expressão, é preciso usar parênteses para agrupar dentro da expressão, garantindo uma avaliação correta e para esclarecer a intenção da expressão. Por exemplo, considere o seguinte: isCurrentRevolv := trades.trd_type = 'R' AND trades.trd_rate = '0' OR trades.trd_rate = '1'; não gera o resultado pretendido. O uso de parênteses garante a avaliação correta, como mostrado abaixo: isCurrentRevolv := trades.trd_type = 'R' AND (trades.trd_rate = '0' OR trades.trd_rate = '1'); Operador XOR<indexterm> <primary>XOR Operator</primary> </indexterm> A função a seguir pode ser usada para realizar uma operação XOR em 2 valores booleanos: BOOLEAN XOR(BOOLEAN cond1, BOOLEAN cond2) := (cond1 OR cond2) AND NOT (cond1 AND cond2);