- Kategorien:
IFF¶
Einstufiger if-then-else
-Ausdruck. Ähnlich wie CASE, erlaubt jedoch nur eine einzige Bedingung.
Wenn die Bedingung condition
den Wert TRUE ergibt, wird expr1
zurückgegeben, andernfalls wird expr2
zurückgegeben.
Syntax¶
IFF( <condition> , <expr1> , <expr2> )
Argumente¶
condition
Die Bedingung ist ein Ausdruck, der einen BOOLEAN-Wert (True, False oder NULL) ergibt.
expr1
Ein allgemeiner Ausdruck. Dieser Wert wird zurückgegeben, wenn die Bedingung
condition
erfüllt ist.expr2
Ein allgemeiner Ausdruck. Dieser Wert wird zurückgegeben, wenn
condition
nicht erfüllt wird (d. h. „false“ oder NULL ist).
Nutzungshinweise¶
Die
condition
kann eineSELECT
-Anweisung enthalten, die wiederum Mengenoperatoren enthält, z. B.UNION
,INTERSECT
,EXCEPT
undMINUS
. Stellen Sie bei der Verwendung von Mengenoperatoren sicher, dass die Datentypen kompatibel sind. Weitere Informationen dazu finden Sie unter Allgemeine Nutzungshinweise unter dem Thema Mengenoperatoren.
Sortierungsdetails¶
Der von der Funktion zurückgegebene Wert behält die Sortierungsspezifikation der Sortierung mit der höchsten Priorität der Argumente THEN
/ELSE
bei.
Beispiele¶
Das folgende Beispiel veranschaulicht die Funktion 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 | +---------+-----------------------------------------------+