카테고리:

조건식 함수

IFF

단일 수준 if-then-else 식입니다. CASE 와 유사하지만, 단일 조건만 허용합니다.

condition 이 TRUE로 평가되는 경우 expr1 을 반환하고, 그렇지 않은 경우 expr2 를 반환합니다.

구문

IFF( <condition> , <expr1> , <expr2> )
Copy

인자

condition

조건은 BOOLEAN 값(True, False 또는 NULL)으로 평가되어야 하는 식입니다..

expr1

일반적인 식입니다. condition 이 true인 경우, 이 값이 반환됩니다.

expr2

일반적인 식입니다. condition 이 true가 아닌 경우(즉, false 또는 NULL인 경우), 이 값이 반환됩니다.

사용법 노트

  • conditionUNION, INTERSECT, EXCEPT, MINUS 같은 세트 연산자가 있는 SELECT 문을 포함할 수 있습니다. 세트 연산자를 사용할 때 데이터 타입이 호환되는지 확인하십시오. 자세한 내용은 세트 연산자 항목의 일반적인 사용법 노트 를 참조하십시오.

데이터 정렬 세부 정보

함수에서 반환된 값은 THEN/ELSE 인자 중 우선 순위 가 가장 높은 데이터 정렬의 데이터 정렬 사양을 유지합니다.

다음 예는 IFF 함수를 보여줍니다.

select iff(True, 'true', 'false');
+----------------------------+
| IFF(TRUE, 'TRUE', 'FALSE') |
|----------------------------|
| true                       |
+----------------------------+
Copy
select iff(False, 'true', 'false');
+-----------------------------+
| IFF(FALSE, 'TRUE', 'FALSE') |
|-----------------------------|
| false                       |
+-----------------------------+
Copy
select iff(NULL, 'true', 'false');
+----------------------------+
| IFF(NULL, 'TRUE', 'FALSE') |
|----------------------------|
| false                      |
+----------------------------+
Copy
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                                       |
+---------+-----------------------------------------------+
Copy