No SQLite,
iif()
é uma função condicional que retorna o segundo ou terceiro argumento com base na avaliação do primeiro argumento. É logicamente equivalente a
CASE WHEN X THEN Y ELSE Z END
. iif()
é uma abreviação de Se imediato . O
iif()
A função foi introduzida no SQLite 3.32.0, lançado em 22 de maio de 2020. Sintaxe
A sintaxe fica assim:
iif(X,Y,Z)
Onde:
- X é a expressão a ser avaliada.
- S define o que é retornado se a avaliação de X retorna verdadeiro.
- Z define o que é retornado se a avaliação de X retorna falso.
Outra maneira de pensar é assim:
iif(expr, truepart, falsepart)
Exemplo
Aqui está um exemplo básico para demonstrar como
iif()
funciona. SELECT iif( 1 < 2, "True", "False" );
Resultado:
True
Nesse caso, a expressão a ser avaliada foi
1 < 2
. É verdade que 1 é menor que 2, então o segundo argumento foi retornado. Isso é o equivalente a fazer o seguinte.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END;
Resultado:
True
Nesses exemplos, usei as palavras “True” e “False”, mas poderia ter usado qualquer coisa.
Por exemplo, eu poderia ter feito isso em vez disso:
SELECT iif( 1 < 2, "Fail", "Pass" );
Resultado:
Fail
Ou pode ser algo completamente removido de uma resposta do tipo binário “verdadeiro” ou “falso”.
Por exemplo:
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );
Resultado:
Sticky Rice
Exemplo de banco de dados
Aqui está um exemplo que usa colunas de um banco de dados.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;
Resultado:
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock