- カテゴリ:
IFF¶
単一レベルの if-then-else
式です。 CASE と似ていますが、1つの条件のみを許可します。
condition
が TRUE に評価される場合、 expr1
を返します。それ以外の場合は expr2
を返します。
構文¶
IFF( <condition> , <expr1> , <expr2> )
引数¶
condition
条件は、 BOOLEAN 値(True、False、または NULL)に評価される必要がある式です。
expr1
一般的な式です。この値は、
condition
が真の場合に返されます。expr2
一般的な式です。この値は、
condition
が真でない場合(偽または NULLの場合)に返されます。
使用上の注意¶
condition
には、UNION
、INTERSECT
、EXCEPT
、MINUS
などの集合演算子を含むSELECT
ステートメントを含めることができます。セット演算子を使用する場合は、データ型に互換性があることを確認してください。詳細については、 集合演算子 トピックの 一般的な使用上の注意 をご参照ください。
照合の詳細¶
関数から返される値は、 THEN
/ELSE
引数の最高の 優先度 照合の照合指定を保持します。
例¶
次の例は、 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 | +---------+-----------------------------------------------+