비교 조건 - Amazon Redshift

비교 조건

비교 조건이란 두 값의 논리적 관계를 말합니다. 모든 비교 조건은 반환 형식이 부울인 이진 연산자입니다. Amazon Redshift는 다음 표에 설명된 비교 연산자를 지원합니다.

연산자 구문 설명
< a < b 값 a가 값 b보다 작습니다.
> a > b 값 a가 값 b보다 큽니다.
<= a <= b 값 a가 값 b보다 작거나 같습니다.
>= a >= b 값 a가 값 b보다 크거나 같습니다.
= a = b 값 a가 값 b와 같습니다.
<> 또는 != a <> b or a != b 값 a가 값 b와 같지 않습니다.
ANY | SOME a = ANY(subquery) 값 a가 하위 쿼리에서 반환되는 모든 값과 같습니다.
ALL a <> ALL or != ALL (subquery)) 값 a가 하위 쿼리에서 반환되는 모든 값과 같지 않습니다.
IS TRUE | FALSE | UNKNOWN a IS TRUE 값이 부울 TRUE입니다.

사용 노트

= ANY | SOME

ANY 및 SOME 키워드는 IN 조건과 동의어입니다. 즉, 반환 값이 1개 이상인 하위 쿼리에서 반환되는 값 중에서 1개라도 비교 결과가 true라면 true를 반환합니다. Amazon Redshift는 ANY와 SOME일 때 =(같음) 조건만 지원합니다. 부등식 조건은 지원하지 않습니다.

참고

ALL 조건자는 지원되지 않습니다.

<> ALL

ALL 키워드는 NOT IN(IN 조건 조건 참조)과 동의어이기 때문에 하위 쿼리 결과에 표현식이 포함되어 있지 않을 때 true를 반환합니다. Amazon Redshift는 ALL일 때 <> 또는 !=(같지 않음) 조건만 지원합니다. 기타 비교 조건은 지원하지 않습니다.

IS TRUE/FALSE/UNKNOWN

0이 아닌 값은 TRUE와, 0은 FALSE와, 그리고 NULL은 UNKNOWN과 같습니다. 부울 유형 데이터 형식을 참조하십시오.

예시

다음은 몇 가지 간단한 비교 조건 예입니다.

a = 5 a < b min(x) >= 5 qtysold = any (select qtysold from sales where dateid = 1882

다음은 VENUE 테이블에서 좌석 수가 10000석 이상인 장소를 반환하는 쿼리입니다.

select venueid, venuename, venueseats from venue where venueseats > 10000 order by venueseats desc; venueid | venuename | venueseats ---------+--------------------------------+------------ 83 | FedExField | 91704 6 | New York Giants Stadium | 80242 79 | Arrowhead Stadium | 79451 78 | INVESCO Field | 76125 69 | Dolphin Stadium | 74916 67 | Ralph Wilson Stadium | 73967 76 | Jacksonville Municipal Stadium | 73800 89 | Bank of America Stadium | 73298 72 | Cleveland Browns Stadium | 73200 86 | Lambeau Field | 72922 ... (57 rows)

다음은 USERS 테이블에서 록 음악을 좋아하는 사용자(USERID)를 선택하는 예입니다.

select userid from users where likerock = 't' order by 1 limit 5; userid -------- 3 5 6 13 16 (5 rows)

다음은 USER 테이블에서 록 음악을 좋아하는지 알 수 없는 사용자(USERID)를 선택하는 예입니다.

select firstname, lastname, likerock from users where likerock is unknown order by userid limit 10; firstname | lastname | likerock ----------+----------+---------- Rafael | Taylor | Vladimir | Humphrey | Barry | Roy | Tamekah | Juarez | Mufutau | Watkins | Naida | Calderon | Anika | Huff | Bruce | Beck | Mallory | Farrell | Scarlett | Mayer | (10 rows

TIME 열이 있는 예

다음 예제 테이블 TIME_TEST에는 3개의 값이 삽입된 TIME_VAL(TIME 형식) 열이 있습니다.

select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00

다음 예에서는 각 timetz_val에서 시간을 추출합니다.

select time_val from time_test where time_val < '3:00'; time_val --------------- 00:00:00.5550 00:58:00

다음 예에서는 2개의 시간 리터럴을 비교합니다.

select time '18:25:33.123456' = time '18:25:33.123456'; ?column? ---------- t

TIMETZ 열이 있는 예

다음 예제 테이블 TIMETZ_TEST에는 3개의 값이 삽입된 TIMETZ_VAL(TIMETZ 형식) 열이 있습니다.

select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00

다음 예에서는 3:00:00 UTC보다 작은 TIMETZ 값만 선택합니다. 값을 UTC로 변환한 후 비교합니다.

select timetz_val from timetz_test where timetz_val < '3:00:00 UTC'; timetz_val --------------- 00:00:00.5550+00

다음 예에서는 2개의 TIMETZ 리터럴을 비교합니다. 비교를 위해 시간대는 무시됩니다.

select time '18:25:33.123456 PST' < time '19:25:33.123456 EST'; ?column? ---------- t