SnowConvert AI - Redshift - Fonctions intégrées

Note

Pour plus d’informations sur les fonctions intégrées et leurs équivalents Snowflake, consultez également les fonctions intégrées courantes.

Fonctions d’agrégation

Les fonctions d’agrégation calculent une seule valeur de résultat à partir d’un ensemble de valeurs d’entrée. (Fonctions d’agrégation de référence de langage 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> (expression [ DISTINCT ] )</p><p></p><p><em>Remarques : Redshift et Snowflake peuvent afficher des précisions/décimales différentes en raison de l’arrondi/du formatage des types de données.</em></p>

COUNT

COUNT

LISTAGG

<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/listagg »>LISTAGG</a> </p><p></p><p><em>Remarques : DISTINCT de Redshift ignore les espaces de fin (“a “ = “a”) ; Pas Snowflake. (Voir</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>Remarques<strong> : Snowflake n’autorise pas l’utilisation de types de date</strong>, alors que Redshift oui. (Voir</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> (expression [ 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> (expression [ DISTINCT

ALL ] )

VAR_POP ( [ DISTINCT

Fonctions de tableau

Crée un tableau de type de données SUPER. (Fonctions de tableau de référence du langage Redshift SQL).

Redshift

Snowflake

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

ARRAY_CONSTRUCT

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

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>expr_super1</em>,<em>expr_super2</em>,.. )</p>

<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/array_flatten »>ARRAY_FLATTEN</a> ( &#x3C;array> ) </p><p></p><p><em>Remarques : les résultats peuvent varier entre les plateformes (Voir</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>Remarques : Redshift autorise les délimiteurs manquants ; Snowflake les exige, la valeur par défaut étant la virgule</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>Remarques : Les noms de la fonction et le deuxième argument diffèrent ; ajustez les arguments pour qu’ils soient comparables.</em></p>

Expressions conditionnelles

Redshift

Snowflake

DECODE

<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/decode »>DECODE</a> </p><p></p><p><em>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques : NVL de Redshift accepte plusieurs arguments ; NVL de Snowflake n’en accepte que deux. Pour faire correspondre le comportement Redshift, NVL avec plus de deux arguments est converti en 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>Remarques : NULLIF de Redshift ignore les espaces de fin dans certaines comparaisons de chaînes, contrairement à Snowflake. Par conséquent, la transformation ajoute RTRIM pour l’équivalence.</em></p>

Fonctions de formatage de types de données

Les fonctions de formatage de type de données offrent un moyen simple de convertir des valeurs d’un type de données à un autre. Pour chacune de ces fonctions, le premier argument est toujours la valeur à formater et le deuxième argument contient le modèle pour le nouveau format. (Fonctions de formatage de type de données de référence de langage 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>Remarques : La prise en charge de cette fonction par Snowflake est partielle (voir</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>Remarques : <code>TO_DATE</code> de Snowflake échoue pour des dates non valides comme “20010631” (juin compte 30 jours), contrairement au <code>TO_DATE</code> flexible de Redshift. Utilisez <code>TRY_TO_DATE</code> dans Snowflake pour traiter ces cas en renvoyant NULL. (voir</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>

Fonctions de date et d’heure

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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques : Redshift utilise UTC par défaut ; la fonction Snowflake requiert une spécification UTC explicite. Par conséquent, il sera ajouté comme fuseau horaire cible.</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>Remarques : Les formats de parties de date non valides sont traduits en formats compatibles avec 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>Remarques : Les formats de parties de date non valides sont traduits en formats compatibles avec 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>Notes : cette fonction est partiellement prise en charge par Snowflake. (Voir </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>Remarques :</em> <em>les résultats peuvent varier entre les plateformes (Voir</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>Remarques : Les formats de parties de date non valides sont traduits en formats compatibles avec 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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques :</em> Partie de temps ou date prise en charge : DAY, DOW, DOY, EPOCH, HOUR, MINUTE, MONTH, QUARTER, SECOND, WEEK, YEAR. </p>

Note

Les horodatages Redshift ont une précision de microseconde par défaut (6 chiffres) ; Snowflake utilise par défaut une précision en nanosecondes (9 chiffres). Ajustez la précision selon vos besoins à l’aide de ALTER SESSION (par ex., ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF2';). Une perte de précision peut se produire en fonction du type de données utilisé.\ \ Comme certains formats sont incompatibles avec Snowflake, le réglage des paramètres de compte [DATE_INPUT_FORMAT ou TIME_INPUT_FORMAT](https://docs.snowflake.com/en/sql-reference/date-time-input-output#data-loading pourrait maintenir l’équivalence fonctionnelle entre les plateformes.

Fonctions de hachage

Une fonction de hachage est une fonction mathématique qui convertit une valeur numérique d’entrée en une autre valeur. (Les fonctions de hachage de référence du langage Redshift SQL).

Redshift

Snowflake

FNV_HASH (value [, seed])

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

Fonctions 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>Remarques :</em> </p><ol><li><em>Redshift traite les caractères de nouvelle ligne, de tabulation et de retour chariot littéralement ; Snowflake les interprète.</em></li><li><em>Un littéral JSON et un chemin séparés par des points sont nécessaires pour accéder aux objets imbriqués dans la fonction Snowflake.</em></li><li><em>Les chemins avec des espaces dans les variables doivent être entre guillemets.</em></li></ol>

Fonctions mathématiques

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

Note

L’échelle des résultats Redshift et Snowflake peut varier.

Fonctions de chaîne

Les fonctions de chaîne traitent et manipulent les chaînes de caractères ou les expressions qui correspondent à des chaînes de caractères. (Fonctions de chaîne de référence du langage 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>Remarques : Pour les longueurs négatives en <code>LEFT</code>/<code>RIGHT</code>, Snowflake renvoie une chaîne vide ; Redshift signale une erreur.</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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques : Cette fonction comprend un argument <code>paramètres</code> qui permet à l’utilisateur d’interpréter le modèle en utilisant l’expression régulière compatible avec le dialecte Expression régulière compatible Perl (PCRE), représenté par la valeur <code>p</code> ; cette valeur est supprimée pour éviter tout problème</em>. <em>(Voir</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>Remarques : Certains caractères spéciaux, les résultats peuvent varier d’une plateforme à l’autre (Voir</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>Remarques : Snowflake et Redshift traitent SPLIT_PART différemment avec les classements insensibles à la casse.</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>Remarques :</em> Snowflake prend en charge partiellement cette fonction. <code>SUBSTRING</code> de Redshift, avec un <code>start_position</code> non positif, calcule <code>start_position + number_characters</code> (renvoyant “” si le résultat est non positif). Le comportement de Snowflake diffère. (Voir <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>Remarques : Redshift utilise des mots-clés (BOTH, LEADING, TRAILING) pour le rognage ; Snowflake utilise TRIM, LTRIM, RTRIM.</em></p>

UPPER

UPPER

Fonctions d’informations de type 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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</em> <a href= »../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md »>SSC-FDM-PG0013</a><em>).</em></p>

Fonctions de fenêtre

Redshift

Snowflake

AVG

<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/avg »><em>AVG</em></a> </p><p></p><p><em>Remarques : L’arrondi/le formatage AVG peut varier selon le type de données entre Redshift et 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>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <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>Remarques : Snowflake a besoin de ORDER BY ; les clauses manquantes obtiennent <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>Remarques : Snowflake a besoin de ORDER BY ; les clauses manquantes obtiennent <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>Remarques : Redshift permet les décalages de constantes ou d’expressions ; Snowflake autorise uniquement les décalages de constante</em>.</p>

LISTAGG

<p><a href= »https://docs.snowflake.com/en/sql-reference/functions/listagg »>LISTAGG</a> </p><p></p><p><em>Remarques : DISTINCT de Redshift ignore les espaces de fin (“a “ = “a”) ; Pas Snowflake. (Voir</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>Remarques<strong> : Snowflake n’autorise pas l’utilisation de types de date</strong>, alors que Redshift oui. (Voir</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>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <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>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <code>ORDER BY 1</code>. (Voir</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>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <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>Remarques : L’arrondi varie selon les plateformes.</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>Remarques :</em> <em>les résultats peuvent varier selon les plateformes (Voir</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>Remarques : ORDER BY est obligatoire dans Snowflake ; les clauses manquantes sont remplacées par <code>ORDER BY 1</code>.</em></p>

STDDEV_SAMP

STDDEV

VAR_SAMP

VARIANCE

Problèmes connus

  1. Pour plus d’informations sur les identificateurs entre guillemets dans les fonctions, cliquez ici.

IDENTITY

Description

La fonction IDENTITY est une fonction de système qui opère sur une colonne spécifiée d’une table pour déterminer la valeur initiale de l’identité. Si la valeur initiale n’est pas disponible, elle prend par défaut la valeur fournie dans la fonction. Ceci sera traduit en séquence dans Snowflake.

Grammar Syntax

 "identity"(oid_id, oid_table_id, default)
Copy

Note

Cette fonction n’est plus prise en charge dans Redshift. Elle utilise la valeur par défaut pour définir l’identité et se comporte comme une colonne d’identité standard.

Modèles d’échantillons de sources

Code d’entrée :

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
Résultats

id

inventory_combo

1

5

2

8

3

11

3

14

Code de sortie :

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
Résultats

id

inventory_combo

1

5

2

8

3

11

3

14

EWIs connexes

Il n’y a pas de problème connu.

TO_CHAR

Fonction de date

Description

TO\CHAR convertit un horodatage ou une expression numérique en format de données de type chaîne de caractères. (Référence linguistique Redshift SQL fonction TO_CHAR fonction)

Avertissement

Cette fonction est partiellement prise en charge par Snowflake.

Pour plus d’informations sur les identificateurs cités dans les fonctions, cliquez ici.

Grammar Syntax

 TO_CHAR(timestamp_expression | numeric_expression , 'format')
Copy

Modèles d’échantillons de sources

Code d’entrée :

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
Résultats

TO_CHAR

TO_CHAR

TO_CHAR

TO_CHAR

TO_CHAR

2009

009

DEC-THU-31-2009 11:15PM

125,80

125,80

Code de sortie :

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
Résultats

TO_CHAR

TO_CHAR

2009

Déc-Jeu-31-2009 11 :15PM

Problèmes connus

Aucun problème n’a été constaté.

EWIs connexes

  • SSC-EWI-0006 : le format de date/numérique actuel peut avoir un comportement différent dans Snowflake.

Pour les valeurs temporelles

Spécification de traduction pour la fonction TO_CHAR lors de la transformation de valeurs de date ou d’horodatage en chaîne

Description

Les chaînes de format suivantes s’appliquent à des fonctions telles que TO_CHAR. Ces chaînes peuvent contenir des séparateurs de date (tels que “-”, “/” ou “:”) ainsi que les « dateparts » et « timeparts » suivants. (Page de référence des chaînes de format datetime de Redshift)

Grammar Syntax

TO_CHAR (timestamp_expression, 'format')

Copy

La table suivante spécifie le mappage de chaque élément de format à Snowflake :

Redshift

Snowflake

BC AD, bc, ad (indicateurs d’époque en majuscules et minuscules)

PUBLIC.ERA_INDICATORS_UDF

B.C,. A.D., b.c., a.d. (majuscules et minuscules, indicateurs d’époque avec points)

PUBLIC.ERA_INDICATORS_WITH_POINTS_UDF

CC

PUBLIC.CENTURY_UDF

YYYY et YY

Pris en charge directement

YYY et 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 Mois, mois

PUBLIC.FULL_MONTH_NAME_UDF

MON, Moi, moi

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, Jour, jour

PUBLIC.DAYNAME_LONG_UDF

DY, Jr, jr

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>Remarques : pour que ce UDF fonctionne correctement le paramètre de session Snowflake <code>WEEK_START</code> devrait avoir sa valeur par défaut (<code>0</code>).</em></p>

ID

DAYOFWEEKISO

J

PUBLIC.JULIAN_DAY_UDF

HH24

Pris en charge directement

HH

HH12

HH12

Pris en charge directement

MI

Pris en charge directement

SS

Pris en charge directement

MS

FF3

US

FF6

AM PM, am, pm (indicateurs méridiens en majuscules et minuscules)

PUBLIC.MERIDIAN_INDICATORS_UDF

A.M., P.M., a.m., p.m. (indicateurs méridiens majuscules et minuscules avec points)

PUBLIC.MERIDIAN_INDICATORS_WITH_POINTS_UDF

TZ et tz

<p><code>UTC</code> et <code>utc</code> </p><p></p><p><em>Remarques : conformément à la documentation Redshift </em> <a href= »https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz »><em></em></a><em>, tous les horodatages avec fuseau horaire sont stockés dans UTC, ce qui fait que cet élément de format renvoie un résultat fixe.</em></p>

OF

<p>+00 </p><p></p><p><em>Remarques : conformément à la documentation Redshift </em> <a href= »https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz »><em></em></a><em>, tous les horodatages avec fuseau horaire sont stockés dans UTC, ce qui fait que cet élément de format renvoie un résultat fixe.</em></p>

SSSS

PUBLIC.SECONDS_PAST_MIDNIGHT

SP

Remarques : il s’agit d’un exemple de modificateur de modèle PostgreSQL pour le « mode orthographe », cependant il ne fait rien sur Redshift, il est donc supprimé de la sortie.

FX

Remarques : ceci est un autre exemple de modificateur de modèle pour le « format fixe », cependant il n’a pas d’utilité sur la fonction TO_CHAR et est, par conséquent, supprimé.

Modèles d’échantillons de sources

Transformation directe des éléments de format (pas de fonctions/UDFs)

Le résultat est conservé sous la forme d’une fonction unique TO_CHAR

Redshift
Requête
 SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH:MI:SS.MS') AS col1;
Copy
Résultat
+----------------------+
|col1                  |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+

Copy
Snowflake
Requête
 SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH12:MI:SS.FF3') AS col1;
Copy
Résultat
+----------------------+
|col1                  |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+

Copy

Transformation de format à l’aide de fonctions/UDFs

Le résultat est une concaténation de plusieurs fonctions intégrées TOCHAR, UDFs et Snowflake qui génèrent la représentation équivalente sous forme de chaîne de la valeur de l’heure de la date

Redshift
Requête
 SELECT TO_CHAR(DATE '2025-07-05', '"Today is " Month DAY DD, "it belongs to the week " IW') AS result;
Copy
Résultat
+-------------------------------------------------------------+
|result                                                       |
+-------------------------------------------------------------+
|Today is  July      SATURDAY  05, it belongs to the week  27 |
+-------------------------------------------------------------+

Copy
Snowflake
Requête
 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
Résultat
+-------------------------------------------------------------+
|result                                                       |
+-------------------------------------------------------------+
|Today is  July      SATURDAY  05, it belongs to the week  27 |
+-------------------------------------------------------------+

Copy

Texte cité

Les éléments de format dans le texte entre guillemets doubles sont ajoutés à la sortie directement sans les interpréter, les guillemets doubles échappés sont transformés en leur équivalent échappé dans Snowflake.

Redshift
Requête
 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
Résultat
+-----------------+-------------------+-------------------+
|result1          |result2            |result3            |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+

Copy
Snowflake
Requête
 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
Résultat
+-----------------+-------------------+-------------------+
|result1          |result2            |result3            |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+

Copy

Problèmes connus

Les modificateurs de modèles ne sont pas pris en charge

Les modificateurs de modèles de format suivants :

  • FM (mode remplissage)

  • TH et th (suffixe du nombre ordinal en majuscules et minuscules)

  • TM (mode traduction)

Ne sont pas pris en charge, les inclure dans un format générera SSC-EWI-0006

Code d’entrée :

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

Code de sortie :

 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

Paramètre du format transmis par la variable

Lorsque le paramètre du format est transmis comme une variable au lieu d’un littéral de chaîne, la transformation des éléments de format ne peut pas être appliquée, un avertissement FDM sera ajouté aux utilisations de la fonction à ce sujet.

Code d’entrée :

 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

Code de sortie :

 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 connexes

  1. SSC-EWI-0006 : le format de date/numérique actuel peut avoir un comportement différent dans Snowflake.

  2. [SSC-FDM-0032](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0032) : le paramètre n’est pas une valeur littérale, la transformation n’a pas pu être entièrement appliquée