- Categorias:
IFF¶
Expressão if-then-else
de nível único. Similar a CASE, mas só permite uma única condição.
Se condition
é avaliado como TRUE, retorna expr1
, caso contrário retorna expr2
.
Sintaxe¶
IFF( <condition> , <expr1> , <expr2> )
Argumentos¶
condition
A condição é uma expressão que deve ser avaliada como um valor BOOLEAN (True, False ou NULL).
expr1
Uma expressão geral. Este valor é retornado se o
condition
for verdadeiro.expr2
Uma expressão geral. Este valor será devolvido se o
condition
não for verdadeiro (isto é, se for falso ou NULL).
Notas de uso¶
O
condition
pode incluir uma instruçãoSELECT
contendo operadores definidos, tais comoUNION
,INTERSECT
,EXCEPT
eMINUS
. Ao utilizar os operadores do conjunto, certifique-se de que os tipos de dados sejam compatíveis. Para obter mais detalhes, consulte Notas de uso geral no tópico Operadores de conjuntos.
Detalhes do agrupamento¶
O valor retornado da função retém a especificação de agrupamento do agrupamento com maior precedência dos argumentos THEN
/ELSE
.
Exemplos¶
Os exemplos a seguir demonstram a função IFF
:
select iff(True, 'true', 'false'); +----------------------------+ | IFF(TRUE, 'TRUE', 'FALSE') | |----------------------------| | true | +----------------------------+select iff(False, 'true', 'false'); +-----------------------------+ | IFF(FALSE, 'TRUE', 'FALSE') | |-----------------------------| | false | +-----------------------------+select iff(NULL, 'true', 'false'); +----------------------------+ | IFF(NULL, 'TRUE', 'FALSE') | |----------------------------| | false | +----------------------------+SELECT val, IFF(val::int = val, 'integer', 'non-integer') FROM ( SELECT column1 as val FROM values(1.0), (1.1), (-3.1415), (-5.000), (null) ) ORDER BY val DESC; +---------+-----------------------------------------------+ | VAL | IFF(VAL::INT = VAL, 'INTEGER', 'NON-INTEGER') | |---------+-----------------------------------------------| | NULL | non-integer | | 1.1000 | non-integer | | 1.0000 | integer | | -3.1415 | non-integer | | -5.0000 | integer | +---------+-----------------------------------------------+