조건 함수 - Amazon Simple Storage Service

조건 함수

중요

신규 고객은 더 이상 Amazon S3 Select를 사용할 수 없습니다. Amazon S3 Select 기존 고객은 평소처럼 이 기능을 계속 사용할 수 있습니다. 자세히 알아보기

Amazon S3 Select에서는 다음과 같은 조건부 함수를 지원합니다.

CASE

CASE 표현식은 다른 언어에서 볼 수 있는 if/then/else 문과 유사한 조건부 표현식입니다. CASE는 여러 조건이 있을 때 결과를 지정하는 데 사용됩니다. CASE 표현식은 단순(simple)과 검색(searched), 두 가지 유형이 있습니다.

단순 CASE 표현식에서는 표현식과 값을 비교합니다. 이때 일치하는 부분이 발견되면 THEN 절에서 지정된 작업이 적용됩니다. 일치하는 부분이 발견되지 않으면 ELSE 절에서 지정된 작업이 적용됩니다.

검색 CASE 표현식에서는 각 CASE가 부울 표현식에 따라 평가되고, CASE 문이 처음 일치하는 CASE를 반환합니다. WHEN 절 사이에서 일치하는 CASE이 발견되지 않으면 ELSE 절의 작업이 반환됩니다.

구문

참고

현재 Amazon S3 Select는 ORDER BY 또는 새 줄이 포함된 쿼리를 지원하지 않습니다. 줄 바꿈 없이 쿼리를 사용해야 합니다.

다음은 조건을 일치시키는 데 사용되는 단순 CASE 문입니다.

CASE expression WHEN value THEN result [WHEN...] [ELSE result] END

다음은 각 조건을 평가하는 데 사용되는 검색 CASE 문입니다.

CASE WHEN boolean condition THEN result [WHEN ...] [ELSE result] END

참고

Amazon S3 콘솔을 사용하여 다음 예제를 실행하고 CSV 파일에 헤더 행이 포함된 경우CSV 데이터의 첫 번째 줄 제외를 선택하세요.

예제 1: 쿼리에서 단순 CASE 표현식을 사용하여 New York City를 Big Apple로 바꿉니다. 그 밖의 도시 이름은 모두 other로 변경합니다.

SELECT venuecity, CASE venuecity WHEN 'New York City' THEN 'Big Apple' ELSE 'other' END FROM S3Object;

쿼리 결과:

venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...

예제 2: 검색 CASE 표현식을 사용하여 개별 티켓 판매에 대한 pricepaid 값을 기준으로 그룹 번호를 할당합니다.

SELECT pricepaid, CASE WHEN CAST(pricepaid as FLOAT) < 10000 THEN 'group 1' WHEN CAST(pricepaid as FLOAT) > 10000 THEN 'group 2' ELSE 'group 3' END FROM S3Object;

쿼리 결과:

pricepaid | case -----------+--------- 12624.00 | group 2 10000.00 | group 3 10000.00 | group 3 9996.00 | group 1 9988.00 | group 1 ...

COALESCE

COALESCE는 인수를 순서대로 평가하여 알 수 없는 첫 번째 값, 즉 첫 번째 null이 아니거나 누락되지 않은 값을 반환합니다. 이 함수는 null과 누락 값을 전파하지 않습니다.

구문

COALESCE ( expression, expression, ... )

파라미터

expression

함수가 실행되는 대상 표현식입니다.

COALESCE(1) -- 1 COALESCE(null) -- null COALESCE(null, null) -- null COALESCE(missing) -- null COALESCE(missing, missing) -- null COALESCE(1, null) -- 1 COALESCE(null, null, 1) -- 1 COALESCE(null, 'string') -- 'string' COALESCE(missing, 1) -- 1

NULLIF

두 개의 표현식이 주어질 경우 그 두 표현식이 같은 값으로 평가된다면 NULLIF는 NULL을 반환하고, 그렇지 않다면 NULLIF는 첫 번째 표현식을 평가한 결과를 반환합니다.

구문

NULLIF ( expression1, expression2 )

파라미터

expression1, expression2

함수가 실행되는 대상 표현식들입니다.

NULLIF(1, 1) -- null NULLIF(1, 2) -- 1 NULLIF(1.0, 1) -- null NULLIF(1, '1') -- 1 NULLIF([1], [1]) -- null NULLIF(1, NULL) -- 1 NULLIF(NULL, 1) -- null NULLIF(null, null) -- null NULLIF(missing, null) -- null NULLIF(missing, missing) -- null