SnowConvert AI - Redshift - 표현식¶
식 목록¶
설명¶
표현식 목록은 표현식의 조합으로, 멤버 자격 및 비교 조건(WHERE 절) 및 GROUP BY 절에 나타날 수 있습니다. (Redshift SQL Language Reference 식 목록).
참고
이 구문은 Snowflake에서 완벽하게 지원됩니다.
문법 구문¶
샘플 소스 패턴¶
설정 데이터¶
Redshift¶
IN 절¶
입력 코드:¶
Redshift¶
결과¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
출력 코드:¶
Snowflake¶
결과¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
비교¶
입력 코드:¶
Redshift¶
결과¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
출력 코드:¶
Snowflake¶
결과¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
참고
다음 연산자를 사용한 식 목록 비교는 Snowflake에서 동작이 다를 수 있습니다. ( < , <= , > , >=). 이러한 연산는 논리적 AND 작업으로 변환되어 Snowflake에서 완전한 동등성을 달성합니다.
입력 코드:¶
Redshift¶
결과¶
R1 |
R2 |
R3 |
R4 |
R5 |
|---|---|---|---|---|
FALSE |
FALSE |
NULL |
NULL |
FALSE |
출력 코드:¶
Snowflake¶
결과¶
R1 |
R2 |
R3 |
R4 |
R5 |
|---|---|---|---|---|
FALSE |
FALSE |
NULL |
NULL |
FALSE |
중첩된 튜플¶
입력 코드:¶
Redshift¶
결과¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
출력 코드¶
Snowflake¶
결과¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
케이스 문¶
입력 코드:¶
Redshift¶
결과¶
RESULT |
|---|
발견됨 |
발견됨 |
발견됨 |
찾을 수 없음 |
찾을 수 없음 |
찾을 수 없음 |
출력 코드¶
Snowflake¶
결과¶
RESULT |
|---|
발견됨 |
발견됨 |
발견됨 |
찾을 수 없음 |
찾을 수 없음 |
찾을 수 없음 |
여러 식¶
입력 코드:¶
Redshift¶
결과¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
출력 코드¶
Snowflake¶
결과¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
조인¶
입력 코드:¶
Redshift¶
결과¶
QUANTITY |
FRUIT |
QUANTITY |
FRUIT |
|---|---|---|---|
하나 |
apple |
하나 |
apple |
출력 코드¶
Snowflake¶
결과¶
QUANTITY |
FRUIT |
QUANTITY |
FRUIT |
|---|---|---|---|
하나 |
apple |
하나 |
apple |
알려진 문제 ¶
문제가 발견되지 않았습니다.
복합 식¶
설명 ¶
복합 식은 산술 연산자로 조인된 일련의 간단한 식입니다. 복합 식에 사용되는 간단한 식은 숫자 값을 반환해야 합니다.
문법 구문 ¶
변환 테이블¶
| Redshift | Snowflake | Comments |
|---|---|---|
|| (Concatenation) | || | Fully supported by Snowflake |
샘플 소스 패턴¶
입력 코드:¶
Redshift¶
결과¶
concat_string_number |
|---|
Hello has number 42 |
<NULL> |
Redshift의 번호는 -7입니다 |
concat_string_date |
|---|
Hello on 2023-12-01 |
<NULL> |
<NULL> |
concat_with_null_handling |
|---|
Hello with number 42 |
Unknown with number 0 |
숫자 -7이 있는 Redshift |
출력 코드:
Snowflake¶
결과¶
concat_string_number |
|---|
Hello has number 42 |
<NULL> |
Redshift의 번호는 -7입니다 |
concat_string_date |
|---|
Hello on 2023-12-01 |
<NULL> |
<NULL> |
concat_with_null_handling |
|---|
Hello with number 42 |
Unknown with number 0 |
숫자 -7이 있는 Redshift |
Known Issues¶
문제가 발견되지 않았습니다.
관련 EWIs¶
알려진 문제는 없습니다.
산술 연산자¶
연산자
산술 연산자를 위한 변환
변환 테이블¶
| Redshift | Snowflake | Comments |
|---|---|---|
| +/- (positive and negative sign/operator) | +/- | Fully supported by Snowflake |
| ^ (exponentiation) | POWER | Fully supported by Snowflake |
| * (multiplication) | * | Fully supported by Snowflake |
| / (division) | / | Redshift division between integers always returns integer value, FLOOR function is added to emulate this behavior. |
| % (modulo) | % | Fully supported by Snowflake |
| + (addition) | + and || | Fully supported by Snowflake. When string are added, it is transformed to a concat. |
| - (subtraction) | - | Fully supported by Snowflake |
| @ (absolute value) | ABS | Fully supported by Snowflake |
| |/ (square root) | SQRT | Fully supported by Snowflake |
| ||/ (cube root) | CBRT | Fully supported by Snowflake |
샘플 소스 패턴¶
덧셈, 뺄셈, 양수 & 음수¶
입력 코드:
입력 코드:¶
Redshift¶
결과¶
| positive_value | negative_value | add_sub_result | next_day | one_hour_before | string_sum | int_string_sum | string_int_sum |
|---|---|---|---|---|---|---|---|
| 100.50 | -100.50 | 97.50 | 2024-12-02 10:30:00.000000 | 2024-12-01 09:30:00.000000 | Basic testType A | 105.5 | 105.5 |
| 250.75 | -250.75 | 243.75 | 2024-12-03 15:45:00.000000 | 2024-12-02 14:45:00.000000 | Complex operationsType B | 255.75 | 255.75 |
| -50.25 | 50.25 | -53.25 | 2024-12-04 20:00:00.000000 | 2024-12-03 19:00:00.000000 | Negative base valueType C | -45.25 | -45.25 |
| 0.00 | 0.00 | 8.00 | 2024-12-05 09:15:00.000000 | 2024-12-04 08:15:00.000000 | Zero base valueType D | 5 | 5 |
출력 코드:
Snowflake¶
결과¶
| positive_value | negative_value | add_sub_result | next_day | one_hour_before | string_sum | int_string_sum | string_int_sum |
|---|---|---|---|---|---|---|---|
| 100.5 | -100.5 | 97.5 | 2024-12-02 10:30:00 | 2024-12-01 09:30:00 | Basic testType A | 105.5 | 105.5 |
| 250.75 | -250.75 | 243.75 | 2024-12-03 15:45:00 | 2024-12-02 14:45:00 | Complex operationsType B | 255.75 | 255.75 |
| -50.25 | 50.25 | -53.25 | 2024-12-04 20:00:00 | 2024-12-03 19:00:00 | Negative base valueType C | -45.25 | -45.25 |
| 0 | 0 | 8 | 2024-12-05 09:15:00 | 2024-12-04 08:15:00 | Zero base valueType D | 5 | 5 |
지수, 곱셈, 나눗셈 & 모듈러¶
입력 코드:¶
Redshift¶
결과¶
| raised_to_exponent | multiplied_value | divided_value | int_division | modulo_result | add_sub_result | controlled_eval |
|---|---|---|---|---|---|---|
| 10100.25 | 201 | 20.1 | 20 | 1 | 97.5 | 104.5 |
| 15766047.296875 | 752.25 | 25.075 | 25 | 1 | 243.75 | 259.75 |
| 6375940.62890625 | -251.25 | -6.28125 | -6 | 0 | -53.25 | -30.25 |
| 0 | 0 | 0 | 0 | 1 | 8 | 10 |
출력 코드:¶
Snowflake¶
결과¶
| raised_to_exponent | multiplied_value | divided_value | int_division | modulo_result | add_sub_result | controlled_eval |
|---|---|---|---|---|---|---|
| 10100.25 | 201 | 20.1 | 20 | 1 | 97.5 | 104.5 |
| 15766047.2969 | 752.25 | 25.075 | 25 | 1 | 243.75 | 259.75 |
| 6375940.6289 | -251.25 | -6.2812 | -7 | 0 | -53.25 | -30.25 |
| 0 | 0 | 0 | 0 | 1 | 8 | 10 |
절대값, 제곱근 및 큐브 루트¶
입력 코드:¶
Redshift¶
결과¶
출력 코드:¶
Snowflake¶
결과¶
Known Issues¶
Snowflake에서는 문자열 값과 함께
+및-단항 연산자를 사용할 수 있지만 Redshift에서는 유효하지 않습니다.
관련 EWIs¶
관련 EWIs 없음.
비트 연산자¶
연산자
비트 연산자를 위한 변환
변환 테이블¶
| Redshift | Snowflake | Comments |
|---|---|---|
& (AND) | BITAND | Fully supported by Snowflake |
| (OR) | BITOR | Fully supported by Snowflake |
<< (Shift Left) | BITSHIFTLEFT | |
>> (Shift Right) | BITSHIFTRIGHT | |
# (XOR) | BITXOR | Fully supported by Snowflake |
~ (NOT) | BITNOT | Fully supported by Snowflake |
샘플 소스 패턴¶
설정 데이터¶
Redshift¶
쿼리¶
Snowflake¶
쿼리¶
정수 값의 비트 연산자¶
입력 코드:¶
Redshift¶
결과¶
출력 코드:
Snowflake¶
결과¶
이진 데이터의 비트 연산자¶
BITAND, BITOR, BITXOR 함수의 경우 'LEFT' 매개 변수를 추가하여 두 이진 값의 길이가 다른 경우 패딩을 삽입하는데, 이는 Snowflake의 값을 비교할 때 오류를 방지하기 위한 것입니다.
Redshift¶
쿼리¶
결과¶
Snowflake¶
쿼리¶
결과¶
Known Issues¶
문제가 발견되지 않았습니다.
관련 EWIs¶
SSC-FDM-PG0010: 결과는 Snowflake의 비트 단위 함수 동작에 따라 달라질 수 있습니다.