SnowConvert AI - Redshift - 기본 제공 함수

참고

기본 제공 함수 및 그와 동등한 Snowflake 함수에 대한 자세한 내용은 [일반적인 기본 제공 함수](../general/ built-in-functions.md)도 참조하세요.

집계 함수

집계 함수는 입력 값 세트에서 단일 결과 값을 계산합니다. (Redshift SQL 언어 참조 집계 함수).

Redshift

Snowflake

ANY_VALUE ( [ DISTINCT

ALL ] expression )

AVG ( [ DISTINCT | ALL ] expression )

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/avg”>AVG</a> ( [ DISTINCT ] expression)</p><p></p><p><em>참고: Redshift와 Snowflake는 데이터 타입 반올림/형식 지정으로 인해 정밀도/소수점이 다를 수 있습니다.</em></p>

COUNT

COUNT

LISTAGG

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/listagg”>LISTAGG</a> </p><p></p><p><em>참고: Redshift의 DISTINCT는 후행 공백을 무시하지만(‘a ‘ = ‘a’) Snowflake는 그렇지 않습니다. (</em> <a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

MAX

MAX

MEDIAN

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/median”>MEDIAN</a> </p><p></p><p><em>참고<strong>: Snowflake는 날짜 유형의 사용을 허용하지 않지만</strong> Redshift는 허용합니다. (</em> <a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

MIN

MIN

PERCENTILE_CONT

PERCENTILE_CONT

STDDEV/STDDEV_SAMP ( [ DISTINCT

ALL ] expression)

STDDEV_POP ( [ DISTINCT

SUM

SUM

VARIANCE/VAR_SAMP ( [ DISTINCT

ALL ] expression)

VAR_POP ( [ DISTINCT

배열 함수

SUPER 데이터 타입의 배열을 만듭니다. (Redshift SQL 언어 참조 배열 함수).

Redshift

Snowflake

ARRAY ( [ expr1 ] [ , expr2 [ , … ] ] )

ARRAY_CONSTRUCT

( [ <expr1> ] [ , <expr2> [ , … ] ] )

ARRAY_CONCAT ( super_expr1, super_expr2 )

ARRAY_CAT ( <array1> , <array2> )

ARRAY_FLATTEN

( super_expr1,super_expr2,.. )

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/array_flatten”>ARRAY_FLATTEN</a> ( &#x3C;array> ) </p><p></p><p><em>참고: 결과는 플랫폼마다 다를 수 있습니다(</em> <a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

GET_ARRAY_LENGTH ( super_expr )

ARRAY_SIZE ( <array> | <variant>)

SPLIT_TO_ARRAY ( string,delimiter )

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/split”>SPLIT</a> (&#x3C;string>, &#x3C;separator>)</p><p></p><p><em>참고: Redshift에서는 구분 기호 누락을 허용하지만 Snowflake에는 구분 기호가 필요하며, 기본값은 쉼표입니다.</em></p>

SUBARRAY ( super_expr, start_position, length )

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/array_slice”>ARRAY_SLICE</a> ( &#x3C;array> , &#x3C;from> , &#x3C;to> )</p><p></p><p><em>참고: 함수 이름과 두 번째 인자는 다릅니다. 동등성을 위해 인자를 조정하세요.</em></p>

조건식

Redshift

Snowflake

DECODE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/decode”>DECODE</a> </p><p></p><p><em>참고:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

COALESCE ( expression, expression, … )

COALESCE ( expression, expression, … )

GREATEST ( value [, …] )

GREATEST_IGNORE_NULLS ( <expr1> [, <expr2> … ] )

LEAST ( value [, …] )

LEAST_IGNORE_NULLS ( <expr1> [, <expr2> … ])

NVL( expression, expression, … )

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/nvl”><em>NVL</em></a> <em>( expression, expression )</em></p><p></p><p><em>참고: Redshift의 NVL은 여러 인자를 허용하지만 Snowflake의 NVL은 2개만 허용합니다. Redshift 동작과 일치시키기 위해, 3개 이상의 인자가 있는 NVL이 COALESCE로 변환됩니다.</em></p>

NVL2

NVL2

NULLIF

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/nullif”>NULLIF</a> </p><p></p><p><em>참고: Redshift의 NULLIF는 Snowflake와 달리 일부 문자열 비교에서 후행 공백을 무시합니다. 따라서 변환이 진행되면서 동등성을 위해 RTRIM이 추가됩니다.</em></p>

데이터 타입 형식 지정 함수

데이터 타입 형식 지정 함수를 사용하면 값을 한 데이터 타입에서 다른 데이터 타입으로 쉽게 변환할 수 있습니다. 이러한 각 함수의 경우, 첫 번째 인자는 항상 형식을 지정할 값이고 두 번째 인자에는 새 형식에 대한 템플릿이 포함됩니다. (Redshift SQL 언어 참조 데이터 타입 형식 지정 함수).

Redshift

Snowflake

TO_CHAR

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/to_char”>TO_CHAR</a> </p><p></p><p><em>참고: 이 함수에 대한 Snowflake의 지원은 부분적입니다(</em><a href=”../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0006”><em>SSC-EWI-0006</em></a><em> 참조).</em></p>

TO_DATE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/to_date”>TO_DATE</a> </p><p></p><p><em>참고: Snowflake의 <code>TO_DATE</code>는 Redshift의 느슨한 <code>TO_DATE</code>와 달리 ‘20010631’(6월에는 30일까지 있음)과 같은 유효하지 않은 날짜에서는 실패합니다. Snowflake에서는 <code>TRY_TO_DATE</code>를 사용하고 NULL을 반환하여 이러한 사례를 처리합니다. (</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/redshift/ssc-fdm-rs0004.md”><em>SSC-FDM-RS0004</em></a><em>,</em><a href=”../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0006”><em>SSC-EWI-0006</em></a><em>,</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/general/ssc-fdm-0032.md”><em>SSC-FDM-0032</em></a><em> 참조).</em></p>

날짜 및 시간 함수

Redshift

Snowflake

ADD_MONTHS

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/add_months”>ADD_MONTHS</a> </p><p></p><p><em>참고:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

AT TIME ZONE ‘timezone’

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/convert_timezone”>CONVERT_TIMEZONE</a> ( &#x3C;source_tz> , &#x3C;target_tz> , &#x3C;source_timestamp_ntz> )</p><p><br></p><p><a href=”https://docs.snowflake.com/en/sql-reference/functions/convert_timezone”>CONVERT_TIMEZONE</a> ( &#x3C;target_tz> , &#x3C;source_timestamp> ) </p><p></p><p><em>참고: Redshift의 기본값은 UTC입니다. Snowflake 함수에는 명시적 UTC 사양이 필요합니다. 따라서 대상 타임존으로 추가됩니다.</em></p>

CONVERT_TIMEZONE

CONVERT_TIMEZONE

CURRENT_DATE

CURRENT_DATE()

DATE

DATE

DATEADD/DATE_ADD ( datepart, interval, {date | time | timetz | timestamp} )

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/dateadd”>DATE_ADD</a> ( &#x3C;date_or_time_part>, &#x3C;value>, &#x3C;date_or_time_expr> )</p><p></p><p><em>Notes: 유효하지 않은 날짜 부분 형식은 Snowflake 호환 형식으로 변환됩니다.</em></p>

DATEDIFF/DATE_DIFF

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/datediff”>DATEDIFF</a> </p><p></p><p><em>참고: 유효하지 않은 날짜 부분 형식은 Snowflake 호환 형식으로 변환됩니다.</em></p>

DATE_PART/PGDATE_PART

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/date_part”>DATE_PART</a> </p><p></p><p><em>참고: 이 함수는 Snowflake에서 부분적으로 지원됩니다. (</em> <a href=”../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0006”><em>SSC-EWI-OOO6</em></a><em> 참조).</em></p>

DATE_PART_YEAR (date)

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/year”>YEAR</a> ( &#x3C;date_or_timestamp_expr> ) </p><p></p><p><em>참조:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em> <a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

DATE_TRUNC

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/date_trunc”>DATE_TRUNC</a> </p><p></p><p><em>참고: 유효하지 않은 날짜 부분 형식은 Snowflake 호환 형식으로 변환됩니다.</em> </p>

GETDATE()

GETDATE()

LAST_DAY

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/last_day”>LAST_DAY</a> </p><p></p><p><em>참고:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

NEXT_DAY

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/next_day”>NEXT_DAY</a> </p><p></p><p><em>참고:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

SYSDATE

SYSDATE()

TIMESTAMP

TO_TIMESTAMP

TRUNC

TRUNC

EXTRACT

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/extract”>EXTRACT</a><br><br><em>참고:</em> 지원되는 파트타임 또는 날짜 시간: DAY, DOW, DOY, EPOCH, HOUR, MINUTE, MONTH, QUARTER, SECOND, WEEK, YEAR. </p>

참고

Redshift 타임스탬프는 기본적으로 마이크로초 정밀도(6자리)로 설정됩니다. Snowflake의 기본값은 나노초 정밀도(9자리)입니다. ALTER SESSION을 사용하여 필요에 따라 정밀도를 조정합니다(예: ALTERSESSIONSETTIMESTAMP_OUTPUT_FORMAT= 'YYYY-MM-DDHH24:MI:SS.FF2';). 사용된 데이터 타입에 따라 정밀도 손실이 발생할 수 있습니다.\ \ 일부 형식은 Snowflake와 호환되지 않으므로 계정 매개 변수 DATE_INPUT_FORMAT 또는 TIME_INPUT_FORMAT를 조정하여 플랫폼 간에 기능 동등성을 유지할 수 있습니다.

해시 함수

해시 함수는 숫자 입력 값을 다른 값으로 변환하는 수학 함수입니다. (Redshift SQL 언어 참조 해시 함수).

Redshift

Snowflake

FNV_HASH (value [, seed])

HASH ( <expr> [ , <expr> … ]

JSON 함수

Redshift

Snowflake

JSON_EXTRACT_PATH_TEXT

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/json_extract_path_text”>JSON_EXTRACT_PATH_TEXT</a> </p><p></p><p><em>참고:</em> </p><ol><li><em>Redshift는 줄 바꿈, 탭 및 캐리지 리턴 문자를 문자 그대로 처리합니다. Snowflake에서는 이러한 문자를 해석합니다.</em></li><li><em>Snowflake 함수에서 중첩된 오브젝트에 액세스하려면 JSON 리터럴 및 점으로 구분된 경로가 필요합니다.</em></li><li><em>변수에 공백이 있는 경로는 따옴표로 묶어야 합니다.</em></li></ol>

수학 함수

Redshift

Snowflake

ACOS

ACOS

ASIN

ASIN

ATAN

ATAN

ATAN2

ATAN2

CBRT

CBRT

CEIL/CEILING

CEIL

COS

COS

COT

COT

DEGREES

DEGREES

DEXP

EXP

DLOG1/LN

LN

DLOG10 (number)

LOG (10, number)

EXP

EXP

FLOOR

FLOOR

LOG

LOG

MOD

MOD

PI

PI

POWER/POW

POWER/POW

RADIANS

RADIANS

RANDOM

RANDOM

ROUND

ROUND

SIN

SIN

SIGN

SIGN

SQRT

SQRT

TAN

TAN

TRUNC

TRUNC

참고

Redshift 및 Snowflake 결과는 소수 자릿수가 다를 수 있습니다.

문자열 함수

문자열 함수는 문자열 또는 문자열로 평가되는 식을 처리하고 조작합니다. (Redshift SQL 언어 참조 문자열 함수).

Redshift

Snowflake

ASCII

ASCII

BTRIM

TRIM

CHAR_LENGTH

LENGTH

CHARACTER_LENGTH

LENGTH

CHARINDEX

CHARINDEX

CHR

CHR

CONCAT

CONCAT

INITCAP

INITCAP

LEFT/RIGHT

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/left”>LEFT</a>/<a href=”https://docs.snowflake.com/en/sql-reference/functions/right”>RIGHT</a> </p><p></p><p><em>참고: <code>LEFT</code>/<code>RIGHT</code>의 음수 길이의 경우 Snowflake는 빈 문자열을 반환하지만 Redshift는 오류가 발생시킵니다.</em></p>

LEN

LEN

LOWER

LOWER

OCTET_LENGTH

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/octet_length”>OCTET_LENGTH</a> </p><p></p><p><em>참고:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

QUOTE_IDENT (string)

CONCAT (‘”’, string, ‘”’)

REGEXP_REPLACE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/regexp_replace”>REGEXP_REPLACE</a> </p><p></p><p><em>참고: 이 함수에는 사용자가 <code>p</code> 값으로 표시되는 PCRE(Perl 호환 정규식) 언어를 사용하여 패턴을 해석할 수 있는 <code>parameters</code> 인자가 포함되어 있습니다. 이 인자는 문제를 방지하기 위해 제거됩니다</em>. <em>(</em> <a href=”../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0009”><em>SSC-EWI-0009</em></a><em>,</em> <a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/general/ssc-fdm-0032.md”><em>SC-FDM-0032</em></a><em>,</em> <a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0011.md”><em>SSC-FDM- PG0011</em></a><em> 참조).</em></p>

REPEAT

REPEAT

REPLACE

REPLACE

REPLICATE

REPEAT

REVERSE

REVERSE

SOUNDEX

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/soundex”>SOUNDEX</a> </p><p></p><p><em>참고: 특정 특수 문자입니다. 결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

SPLIT_PART

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/split_part”>SPLIT_PART</a> </p><p></p><p><em>참고: Snowflake 및 Redshift는 대/소문자를 구분하지 않는 데이터 정렬을 사용하여 SPLIT_PART를 다르게 처리합니다.</em></p>

STRPOS (string, substring )

POSITION ( <expr1> IN <expr> )

SUBSTRING

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/substr”><em>SUBSTRING</em></a> </p><p></p><p><em>참고:</em> Snowflake는 이 함수를 부분적으로 지원합니다. 양수가 아닌 <code>start_position</code>을 포함하는 Redshift의 <code>SUBSTRING</code>은 <code>start_position + number_characters</code>를 계산합니다(결과가 양수가 아닌 경우 ‘’ 반환). Snowflake의 동작은 다릅니다. (<a href=”../../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/redshift/ssc-ewi-rs0006.md”>SSC-EWI-RS0006</a> 참조).</p>

TEXTLEN

LENGTH

TRANSLATE

TRANSLATE

TRIM

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/trim”><em>TRIM</em></a> </p><p></p><p><em>참고: Redshift는 자르기를 위해 키워드(BOTH, LEADING, TRAILING)를 사용하지만 Snowflake는 TRIM, LTRIM, RTRIM을 사용합니다.</em></p>

UPPER

UPPER

SUPER 유형 정보 함수

Redshift

Snowflake

IS_ARRAY

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/is_array”>IS_ARRAY</a> </p><p></p><p><em>참고:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

IS_BOOLEAN

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/is_boolean”>IS_BOOLEAN</a> </p><p></p><p><em>참고:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

윈도우 함수

Redshift

Snowflake

AVG

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/avg”><em>AVG</em></a> </p><p></p><p><em>참고: AVG 반올림/형식 지정은 Redshift와 Snowflake의 데이터 타입에 따라 다를 수 있습니다.</em></p>

COUNT

COUNT

DENSE_RANK

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/dense_rank”>DENSE_RANK</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다.</em></p>

FIRST_VALUE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/first_value”>FIRST_VALUE</a> </p><p></p><p><em>참고: Snowflake에는 ORDER BY가 필요하며 누락된 절은 <code>ORDER BY &#x3C;expr>을 가져옵니다.</code></em></p>

LAG

LAG

LAST_VALUE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/last_value”>LAST_VALUE</a> </p><p></p><p><em>참고: Snowflake에는 ORDER BY가 필요하며 누락된 절은 <code>ORDER BY &#x3C;expr>을 가져옵니다.</code></em></p>

LEAD

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/lead”>LEAD</a> </p><p></p><p><em>참고: Redshift는 상수 또는 표현식 오프셋을 허용하지만 Snowflake는 상수 오프셋만 허용합니다</em>.</p>

LISTAGG

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/listagg”>LISTAGG</a> </p><p></p><p><em>참고: Redshift의 DISTINCT는 후행 공백을 무시하지만(‘a ‘ = ‘a’) Snowflake는 그렇지 않습니다. (</em> <a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

MEDIAN

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/median”>MEDIAN</a> </p><p></p><p><em>참고<strong>: Snowflake는 날짜 유형의 사용을 허용하지 않지만</strong> Redshift는 허용합니다. (</em> <a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

NTH_VALUE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/nth_value”>NTH_VALUE</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다.</em></p>

NTILE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/ntile”>NTILE</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다. (</em> <a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

PERCENT_RANK

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/percent_rank”>PERCENT_RANK</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다.</em></p>

PERCENTILE_CONT

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/percentile_cont”>PERCENTILE_CONT</a> </p><p></p><p><em>참고: 반올림은 플랫폼마다 다릅니다.</em></p>

PERCENTILE_DISC

PERCENTILE_DISC

RANK

RANK

RATIO_TO_REPORT

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/ratio_to_report”>RATIO_TO_REPORT</a> </p><p></p><p><em>참고:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md”>SSC-FDM-PG0013</a><em> 참조).</em></p>

ROW_NUMBER

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/row_number”>ROW_NUMBER</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다.</em></p>

STDDEV_SAMP

STDDEV

VAR_SAMP

VARIANCE

알려진 문제

  1. 함수에서 따옴표가 있는 식별자에 대한 자세한 내용을 보려면 여기를 클릭하세요.

IDENTITY

설명

IDENTITY 함수는 테이블의 지정된 열에서 작업을 수행하여 ID의 초기 값을 결정하는 시스템 함수입니다. 초기값을 사용할 수 없는 경우 기본값은 함수에 제공된 값으로 설정됩니다. 이것은 Snowflake의 시퀀스로 변환됩니다.

문법 구문

 "identity"(oid_id, oid_table_id, default)
Copy

참고

이 함수는 더 이상 Redshift에서 지원되지 않습니다. 기본값을 사용하여 ID를 정의하고 표준 ID 열처럼 작동합니다.

샘플 소스 패턴

입력 코드:

Redshift
 CREATE TABLE IF NOT EXISTS table_test
(
    id integer,
    inventory_combo BIGINT  DEFAULT "identity"(850178, 0, '5,3'::text)
);

INSERT INTO table_test (id) VALUES
    (1),
    (2),
    (3),
    (4);

SELECT * FROM table_test;
Copy
결과

id

inventory_combo

1

5

2

8

3

11

3

14

출력 코드:

Snowflake
 CREATE TABLE IF NOT EXISTS table_test
(
    id integer,
    inventory_combo BIGINT IDENTITY(5,3) ORDER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "redshift",  "convertedOn": "11/13/2024",  "domain": "test" }}';

INSERT INTO table_test (id) VALUES
    (1),
    (2),
    (3),
    (4);

SELECT * FROM
    table_test;
Copy
결과

id

inventory_combo

1

5

2

8

3

11

3

14

관련 EWIs

알려진 문제는 없습니다.

TO_CHAR

날짜 함수

설명

TO\CHAR 타임스탬프 또는 숫자 식을 문자 문자열 데이터 형식으로 변환합니다. (Redshift SQL Language Reference TO_CHAR 함수)

경고

이 함수는 Snowflake 에서 부분적으로 지원됩니다.

함수의 따옴표로 묶인 식별자에 대한 자세한 내용은 여기를 클릭하십시오.

문법 구문

 TO_CHAR(timestamp_expression | numeric_expression , 'format')
Copy

샘플 소스 패턴

입력 코드:

Redshift

 SELECT TO_CHAR(timestamp '2009-12-31 23:15:59', 'YYYY'),
       TO_CHAR(timestamp '2009-12-31 23:15:59', 'YYY'),
       TO_CHAR(timestamp '2009-12-31 23:15:59', 'TH'),
       "to_char"(timestamp '2009-12-31 23:15:59', 'MON-DY-DD-YYYY HH12:MIPM'),
       TO_CHAR(125.8, '999.99'),
       "to_char"(125.8, '999.99');
Copy
결과

TO_CHAR

TO_CHAR

TO_CHAR

TO_CHAR

TO_CHAR

2009

009

DEC-THU-31-2009 11:15PM

125.80

125.80

출력 코드:

Snowflake
 SELECT
       TO_CHAR(timestamp '2009-12-31 23:15:59', 'YYYY'),
       PUBLIC.YEAR_PART_UDF(timestamp '2009-12-31 23:15:59', 3),
       TO_CHAR(timestamp '2009-12-31 23:15:59', 'TH') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - TH FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
       PUBLIC.MONTH_SHORT_UDF(timestamp '2009-12-31 23:15:59', 'uppercase') || '-' || PUBLIC.DAYNAME_SHORT_UDF(timestamp '2009-12-31 23:15:59', 'uppercase') || TO_CHAR(timestamp '2009-12-31 23:15:59', '-DD-YYYY HH12:MI') || PUBLIC.MERIDIAN_INDICATORS_UDF(timestamp '2009-12-31 23:15:59', 'uppercase'),
       TO_CHAR(125.8, '999.99'),
       TO_CHAR(125.8, '999.99');
Copy
결과

TO_CHAR

TO_CHAR

2009

Dec-Thu-31-2009 11:15PM

알려진 문제

문제가 발견되지 않았습니다.

관련 EWIs

  • SSC-EWI-0006: Snowflake에서 현재 날짜/숫자 형식의 동작이 다를 수 있습니다.

날짜/시간 값의 경우

날짜 또는 타임스탬프 값을 문자열로 변환할 때 TO_CHAR 함수에 대한 변환 사양

설명

다음 형식 문자열은 TO_CHAR 과 같은 함수에 적용됩니다. 이러한 문자열에는 날짜/시간 구분 기호(예: ‘-’, ‘/’ 또는 ‘:’)와 다음 “dateparts” 및 “timeparts”가 포함될 수 있습니다. (Redshift 날짜/시간 형식 문자열 참조 페이지)

문법 구문

TO_CHAR (timestamp_expression, 'format')

Copy

다음 테이블은 각 형식 요소의 Snowflake에 대한 매핑을 지정합니다.

Redshift

Snowflake

BC, AD, bc, ad (대문자 및 소문자 시대 표시기)

PUBLIC.ERA_INDICATORS_UDF

B.C,. A.D., b.c., a.d. (마침표가 있는 대문자 및 소문자 시대 표시)

PUBLIC.ERA_INDICATORS_WITH_POINTS_UDF

CC

PUBLIC.CENTURY_UDF

YYYYYY

직접 지원

YYYY

PUBLIC.YEAR_PART_UDF

Y,YYY

PUBLIC.YEAR_WITH_COMMA_UDF

IYYY

YEAROFWEEKISO

I, IY, IYY

PUBLIC.ISO_YEAR_PART_UDF

Q

QUARTER

MONTH, Month, month

PUBLIC.FULL_MONTH_NAME_UDF

MON, Mon, mon

PUBLIC.MONTH_SHORT_UDF

RM, rm

PUBLIC.ROMAN_NUMERALS_MONTH_UDF

W

PUBLIC.WEEK_OF_MONTH_UDF

WW

PUBLIC.WEEK_NUMBER_UDF

IW

WEEKISO

DAY, Day, day

PUBLIC.DAYNAME_LONG_UDF

DY, Dy, dy

PUBLIC.DAYNAME_SHORT_UDF

DDD

DAYOFYEAR

IDDD

PUBLIC.DAY_OF_YEAR_ISO_UDF

D

<p><code>PUBLIC.DAY_OF_WEEK_UDF</code> </p><p></p><p><em>참고: 이 UDF가 올바르게 작동하려면 Snowflake 세션 매개 변수 <code>WEEK_START</code>에 기본값(<code>0</code>)을 지정해야 합니다.</em></p>

ID

DAYOFWEEKISO

J

PUBLIC.JULIAN_DAY_UDF

HH24

직접 지원

HH

HH12

HH12

직접 지원

MI

직접 지원

SS

직접 지원

MS

FF3

US

FF6

AM, PM, am, pm (대문자 및 소문자 자오선 표시기)

PUBLIC.MERIDIAN_INDICATORS_UDF

A.M., P.M., a.m., p.m. (마침표가 있는 대문자 및 소문자 자오선 표시)

PUBLIC.MERIDIAN_INDICATORS_WITH_POINTS_UDF

TZtz

<p><code>UTC</code> 및 <code>utc</code> </p><p></p><p><em>참고: </em><a href=”https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz”><em>redshift 설명서</em></a><em>에 따르면, 타임존이 있는 모든 타임스탬프는 UTC로 저장되므로 이 형식 요소가 고정된 결과를 반환합니다.</em></p>

OF

<p>+00 </p><p></p><p><em>참고:</em> <a href=”https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz”><em>redshift 설명서</em></a><em>에 따르면 타임존이 있는 모든 타임스탬프는 UTC로 저장되므로 이 형식 요소가 고정된 결과를 반환합니다.</em></p>

SSSS

PUBLIC.SECONDS_PAST_MIDNIGHT

SP

참고: 이는 “맞춤법 모드”에 대한 PostgreSQL 템플릿 패턴 한정자이지만, Redshift에서는 아무 작업도 수행하지 않으므로 출력에서 제거됩니다.

FX

참고: 이는 “고정 형식”의 또 다른 템플릿 패턴 한정자이지만, TO_CHAR 함수에서는 사용되지 않으므로 제거됩니다.

샘플 소스 패턴

직접 형식 요소 변환(함수 없음/UDFs)

결과는 단일 TO_CHAR 함수로 보존됩니다

Redshift
쿼리
 SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH:MI:SS.MS') AS col1;
Copy
결과
+----------------------+
|col1                  |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+

Copy
Snowflake
쿼리
 SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH12:MI:SS.FF3') AS col1;
Copy
결과
+----------------------+
|col1                  |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+

Copy

함수를 사용한 형식 변환/UDFs

결과는 여러 개의 TO_CHAR, UDFs 및 Snowflake 기본 제공 함수를 연결하여 날짜/시간 값의 동등한 문자열 표현을 생성합니다

Redshift
쿼리
 SELECT TO_CHAR(DATE '2025-07-05', '"Today is " Month DAY DD, "it belongs to the week " IW') AS result;
Copy
결과
+-------------------------------------------------------------+
|result                                                       |
+-------------------------------------------------------------+
|Today is  July      SATURDAY  05, it belongs to the week  27 |
+-------------------------------------------------------------+

Copy
Snowflake
쿼리
 SELECT
    'Today is ' ||
    TO_CHAR(DATE '2025-07-05', ' ') ||
    PUBLIC.FULL_MONTH_NAME_UDF(DATE '2025-07-05', 'firstOnly') ||
    ' ' ||
    PUBLIC.DAYNAME_LONG_UDF(DATE '2025-07-05', 'uppercase') ||
    TO_CHAR(DATE '2025-07-05', ' DD, ') ||
    'it belongs to the week ' ||
    TO_CHAR(DATE '2025-07-05', ' ') ||
    WEEKISO(DATE '2025-07-05') AS result;
Copy
결과
+-------------------------------------------------------------+
|result                                                       |
+-------------------------------------------------------------+
|Today is  July      SATURDAY  05, it belongs to the week  27 |
+-------------------------------------------------------------+

Copy

인용된 텍스트

큰따옴표로 묶인 텍스트의 형식 요소는 해석하지 않고 바로 출력에 추가되며, 이스케이프된 큰따옴표는 Snowflake 이스케이프된 해당 요소로 변환됩니다.

Redshift
쿼리
 SELECT
    TO_CHAR(DATE '2025-01-16', 'MM "TESTING DD" DD') AS result1,
    TO_CHAR(DATE '2025-01-16', 'MM TESTING \\"DD\\" DD') AS result2,
    TO_CHAR(DATE '2025-01-16', 'MM "TESTING \\"DD\\"" DD') AS result3;
Copy
결과
+-----------------+-------------------+-------------------+
|result1          |result2            |result3            |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+

Copy
Snowflake
쿼리
 SELECT
    TO_CHAR(DATE '2025-01-16', 'MM ') || 'TESTING DD' || TO_CHAR(DATE '2025-01-16', ' DD') AS result1,
    TO_CHAR(DATE '2025-01-16', 'MM TEST') || PUBLIC.ISO_YEAR_PART_UDF(DATE '2025-01-16', 1) || TO_CHAR(DATE '2025-01-16', 'NG ""DD"" DD') AS result2,
    TO_CHAR(DATE '2025-01-16', 'MM ') || 'TESTING "DD"' || TO_CHAR(DATE '2025-01-16', ' DD') AS result3;
Copy
결과
+-----------------+-------------------+-------------------+
|result1          |result2            |result3            |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+

Copy

Known Issues

지원되지 않는 템플릿 패턴 수정자

다음 형식의 템플릿 수정자를 사용할 수 있습니다.

  • FM (채우기 모드)

  • TH 및 th(대문자 및 소문자 서수 접미사)

  • TM (변환 모드)

지원되지 않으며, 형식에 포함하면 SSC-EWI-0006이 생성됩니다.

입력 코드:

 SELECT TO_CHAR(CURRENT_DATE, 'FMMonth'),
TO_CHAR(CURRENT_DATE, 'DDTH'),
TO_CHAR(CURRENT_DATE, 'DDth'),
TO_CHAR(CURRENT_DATE, 'TMMonth');
Copy

출력 코드:

 SELECT
TO_CHAR(CURRENT_DATE(), 'FM') || PUBLIC.FULL_MONTH_NAME_UDF(CURRENT_DATE(), 'firstOnly') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - FMMonth FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
TO_CHAR(CURRENT_DATE(), 'DDTH') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - DDTH FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
TO_CHAR(CURRENT_DATE(), 'DDth') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - DDth FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
TO_CHAR(CURRENT_DATE(), 'TM') || PUBLIC.FULL_MONTH_NAME_UDF(CURRENT_DATE(), 'firstOnly') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - TMMonth FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!;
Copy

변수를 통해 전달된 형식 매개 변수

형식 매개 변수가 문자열 리터럴 대신 변수로 전달되면 형식 요소의 변환을 적용할 수 없으며, 함수 사용에 대한 FDM 경고가 추가됩니다.

입력 코드:

 SELECT TO_CHAR(d, 'YYYY/MM/DD'),
TO_CHAR(d, f)
FROM (SELECT TO_DATE('2001-01-01','YYYY-MM-DD') as d, 'DD/MM/YYYY' as f);
Copy

출력 코드:

 SELECT TO_CHAR(d, 'YYYY/MM/DD'),
--** SSC-FDM-0032 - PARAMETER 'format_string' IS NOT A LITERAL VALUE, TRANSFORMATION COULD NOT BE FULLY APPLIED **
TO_CHAR(d, f)
FROM (SELECT TO_DATE('2001-01-01','YYYY-MM-DD') as d, 'DD/MM/YYYY' as f);
Copy

관련 EWIs

  1. SSC-EWI-0006: Snowflake에서 현재 날짜/숫자 형식의 동작이 다를 수 있습니다.

  2. SSC-FDM-0032: 매개 변수가 리터럴 값이 아니므로 변환을 완전히 적용할 수 없습니다