- Kategorien:
IFF¶
Einstufiger if-then-else
-Ausdruck. Ähnlich wie CASE, erlaubt jedoch nur eine einzige Bedingung.
Wenn die Bedingung Bedingung
den Wert TRUE ergibt, wird Ausdruck1
zurückgegeben, andernfalls wird Ausdruck2
zurückgegeben.
Syntax¶
IFF( <condition> , <expr1> , <expr2> )
Argumente¶
Bedingung
Die Bedingung ist ein Ausdruck, der einen BOOLEAN-Wert (True, False oder NULL) ergibt.
Ausdruck1
Ein allgemeiner Ausdruck. Dieser Wert wird zurückgegeben, wenn die Bedingung
Bedingung
erfüllt ist.Ausdruck2
Ein allgemeiner Ausdruck. Dieser Wert wird zurückgegeben, wenn
Bedingung
nicht erfüllt wird (d. h. „false“ oder NULL ist).
Nutzungshinweise¶
Die
Bedingung
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 | +---------+-----------------------------------------------+