# Expressões NULLIF e CASE

São utilizadas as expressões CASE e NULLIF para as expressões condicionais no Derby.

Sintaxe da expressão NULLIF

    NULLIF(L,R)

A expressão NULLIF é muito semelhante à expressão CASE. Por exemplo:

    NULLIF(V1,V2)

equivale à seguinte expressão CASE:

    CASE WHEN V1=V2 THEN NULL ELSE V1 END

Sintaxe da expressão CASE

A expressão CASE pode ser colocada em qualquer lugar onde é permitida uma expressão. Escolhe a expressão a ser avaliada baseado em um teste booleano.

    CASE WHEN ExpressãoBooleana THEN ExpressãoThen ELSE ExpressãoElse END

A ExpressãoThen e a ExpressãoElse são expressões que devem possuir tipos compatíveis. Para os tipos nativos, isto significa que estes tipos devem ser o mesmo, ou deve haver uma conversão nativa de alargamento entre os tipos.

Não é necessário utilizar a expressão CASE para evitar NullPointerExceptions quando uma coluna que pode ter nulo se torna receptora do método.

    -- retorna 3
    VALUES CASE WHEN 1=1 THEN 3 ELSE 4 END;

Se o valor da instância especificada na chamada do método de instância for nulo, o resultado da chamada será nulo (SQL NULL). Entretanto, ainda é necessário utilizar a expressão CASE para uma coluna que pode ter nulo, quando a coluna for o parâmetro de um método primitivo.
Tópico pai: Funções nativas