SnowConvert AI - Redshift - 組み込み関数

注釈

組み込み関数とそれに相当するSnowflake関数の詳細については、 共通組み込み関数 もご参照ください。

集計関数

集約関数は、入力値の集合から単一の結果値を計算します。( Redshift SQL言語リファレンス集約関数 )。

Redshift

Snowflake

<p></p><p><a href="https://docs.snowflake.com/ja/sql-reference/functions/any_value">ANY_VALUE</a> ( [ DISTINCT

ALL ] 式)

AVG ( [ DISTINCT | ALL ] 式)

<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/avg">AVG</a> ( [ DISTINCT ] 式)</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/ja/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

<p><a href="https://docs.aws.amazon.com/redshift/latest/dg/r_STDDEV_functions.html">STDDEV/STDDEV_SAMP</a> ( [ DISTINCT

ALL ]

STDDEV_POP ( [ DISTINCT

SUM

SUM

<p><a href="https://docs.aws.amazon.com/redshift/latest/dg/r_VARIANCE_functions.html">VARIANCE/VAR_SAMP</a> ( [ DISTINCT

ALL ]

VAR_POP ( [ DISTINCT

配列関数

SUPERデータ型の配列を作成します。( Redshift SQL言語リファレンス配列関数 )。

Redshift

Snowflake

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

<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/array_construct">ARRAY_CONSTRUCT</a> </p><p>( [ &#x3C;expr1> ] [ , &#x3C;expr2> [ , ... ] ] )</p>

ARRAY_CONCAT ( super_expr1, super_expr2 )

ARRAY_CAT ( <array1> , <array2> )

<p><a href="https://docs.aws.amazon.com/redshift/latest/dg/array_flatten.html">ARRAY_FLATTEN</a></p><p> ( <em>super_expr1</em>,<em>super_expr2</em>,.. )</p>

<p><a href="https://docs.snowflake.com/ja/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_LENGTHsuper_expr

ARRAY_SIZE ( <array> | <variant>)

SPLIT_TO_ARRAYstring,delimiter

<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/split">SPLIT</a> (&#x3C;string>, &#x3C;separator> )</p><p></p><p><em>:Redshiftでは区切り文字がなくても構いませんが、Snowflakeでは区切り文字が必要です。</em></p>

SUBARRAYsuper_expr, start_position, length

<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/array_slice">ARRAY_SLICE</a> ( &#x3C;array> , &#x3C;from> , &#x3C;to> )</p><p></p><p><em>注意: 関数名と第2引数が異なります。等価性のために引数を調整してください。</em></p>

条件式

Redshift

Snowflake

DECODE

<p><a href="https://docs.snowflake.com/ja/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>

COALESCEexpression, expression, ... )

COALESCEexpression, expression, ... )

GREATEST ( value [, ...] )

<p></p><p><a href="https://docs.snowflake.com/ja/sql-reference/functions/greatest_ignore_nulls">GREATEST_IGNORE_NULLS</a> ( &#x3C;expr1> [, &#x3C;expr2> ... ] )</p><p></p>

LEAST ( value [, ...] )

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

NVLexpression, expression, ... )

<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/nvl"><em>NVL</em></a> <em>( expression, expression )</em></p><p></p><p><em>注意:RedshiftのNVLは複数の引数を受け付けますが、SnowflakeのNVLは2つしか受け付けません。Redshiftの動作に合わせるため、引数が2つ以上のNVLはCOALESCEに変換されます。</em></p>

NVL2

NVL2

NULLIF

<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/nullif">NULLIF</a> </p><p></p><p><em>注意:RedshiftのNULLIFは、Snowflakeとは異なり、一部の文字列比較では末尾の空白が無視されます。したがって、この変換は等価性のためにRTRIMを追加します。</em></p>

データ型フォーマット関数

データ型フォーマット関数は、あるデータ型から別のデータ型に値を変換する簡単な方法を提供します。これらの関数のそれぞれについて、第1引数は常にフォーマットされる値で、第2引数には新しいフォーマットのテンプレートが含まれます。( Redshift SQL言語リファレンスデータ型フォーマット関数 )。

Redshift

Snowflake

TO_CHAR

<p><a href="https://docs.snowflake.com/ja/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/ja/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/ja/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_ADDdatepart, 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>注意:無効な日付部分のフォーマットは、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/ja/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/ja/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/ja/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を使って精度を調整します(例えば、 ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF2'; )。使用するデータ型によっては精度の低下が発生する場合があります。Snowflakeと互換性のないフォーマットもあるため、アカウントパラメーター DATE_INPUT_FORMAT or TIME_INPUT_FORMAT を調整することで、プラットフォーム間の機能的な同等性を維持できる場合があります。

ハッシュ関数

ハッシュ関数とは、数値入力値を別の値に変換する数学関数です。( Redshift SQL言語リファレンスハッシュ関数 )。

Redshift

Snowflake

FNV_HASH (value [, seed])

<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/hash"><em>HASH</em></a> <em>( &#x3C;expr> [ , &#x3C;expr> ... ]。

JSON 関数

Redshift

Snowflake

JSON_EXTRACT_PATH_TEXT

<p><a href="https://docs.snowflake.com/ja/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/ja/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は空の文字列を返します。</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>parameters</code> 引数があり、Perl互換正規表現(PCRE)方言を使ってパターンを解釈することができます。 <code>p</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/ja/sql-reference/functions/substr"><em>SUBSTRING</em></a> </p><p></p><p><em>注意:</em>Snowflakeはこの機能を部分的にサポートしています。Redshiftの <code>SUBSTRING</code> は、 <code>start_position</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/ja/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/ja/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/ja/sql-reference/functions/dense_rank">DENSE_RANK</a> </p><p></p><p><em>注意:SnowflakeではORDER BYは必須です。欠落している句は <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/ja/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>注意:SnowflakeではORDER BYは必須です。欠落している句は <code>ORDER BY 1</code> に置き換えられます。</em></p>

NTILE

<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/ntile">NTILE</a> </p><p></p><p><em>注意:SnowflakeではORDER BYは必須です。欠落している句は <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>注意:SnowflakeではORDER BYは必須です。欠落している句は <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/ja/sql-reference/functions/row_number">ROW_NUMBER</a> </p><p></p><p><em>注意:SnowflakeではORDER BYは必須です。欠落している句は <code>ORDER BY 1</code> に置き換えられます。</em></p>

STDDEV_SAMP

STDDEV

VAR_SAMP

VARIANCE

既知の問題

  1. 関数内の引用符で囲まれた識別子についての詳細は、 こちら をクリックしてください。

IDENTITY

説明

IDENTITY 関数は、アイデンティティの初期値を決定するためにテーブルの指定された列を操作するシステム関数です。初期値がない場合は、関数が提供した値がデフォルト値となります。これはSnowflakeのシーケンスに変換されます。

文法構文

 "identity"(oid_id, oid_table_id, default)
Copy

注釈

この関数はRedshiftではサポートされなくなりました。アイデンティティを定義するためにデフォルト値を使用し、標準的なアイデンティティ列のように振る舞います。

サンプルソースパターン

入力コード:

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 言語リファレンス 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

YYYY および YY

直接サポートされています

YYY および Y

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

TZ および tz

<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

既知の問題

テンプレートパターン修飾子がサポートされていません

以下の形式テンプレート修飾子:

  • 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: パラメーターがリテラル値でないため、変換を完全に適用できませんでした