SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como o iif() funciona no SQLite


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