SnowConvert : Fonctions intégrées Transact

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Agrégation

TransactSQLSnowflakeNotes
TransactSQLSnowflakeNotes
APPROX_COUNT_DISTINCTAPPROX_COUNT_DISTINCT
AVG​AVG
CHECKSUM_AGG*to be defined
COUNTCOUNT
COUNT_BIG*to be defined
GROUPINGGROUPING
GROUPING_IDGROUPING_ID
MAXMAX
MINMIN
STDEVSTDDEV, STDEV_SAMP
STDEVPSTDDEV_POP
SUMSUM
VARVAR_SAMP
VARPVAR_POP​

Analytique

TransactSQL

Snowflake

Remarques

CUME_DIST

CUME_DIST

FIRST_VALUE

FIRST_VALUE

LAG

LAG

LAST_VALUE

LAST_VALUE

LEAD

LEAD

PERCENTILE_CONT

PERCENTILE_CONT

PERCENTILE_DISC

PERCENTILE_DISC

PERCENT_RANK

PERCENT_RANK

Classement

TransactSQL

Snowflake

Remarques

COLLATIONPROPERTY

*à définir

TERTIARY_WEIGHTS

*à définir

Configuration

TransactSQL

Snowflake

Remarques

​@@DBTS

*à définir

@@LANGID

*à définir

@@LANGUAGE

*à définir

@@LOCK_TIMEOUT

*à définir

@@MAX_CONNECTIONS

*à définir

@@MAX_PRECISION

*à définir

@@NESTLEVEL

*à définir

@@OPTIONS

*à définir

@@REMSERVER

*à définir

@@SERVERNAME

CONCAT(”app.snowflake.com”, CURRENT_ACCOUNT( ))

@@SERVICENAME

*à définir

@@SPID

*à définir

@@TEXTSIZE

*à définir

@@VERSION

*à définir

Peut être imité avec CURRENT_VERSION

Conversion

TransactSQL

Snowflake

Remarques

CAST

CAST

<p>Renvoie NULL si la valeur n’est pas un nombre, sinon renvoie la valeur numérique telle quelle. <br>Lors de l’utilisation d’opérateurs tels que &#x3C ;, >, =, &#x3C ;> alors doit être suivi d’un NULL</p>

CONVERT

Voir CONVERT

Même comportement que CAST

PARSE

*à définir

TRY_CAST

TRY_CAST

<p>Renvoie NULL si la valeur n’est pas un nombre, sinon renvoie la valeur numérique telle quelle. <br>Lors de l’utilisation d’opérateurs tels que &#x3C ;, >, =, &#x3C ;> alors doit être suivi d’un NULL</p>

TRY_CONVERT

*à définir

Même comportement que TRY_CAST

TRY_PARSE

TRY_CAST

Le comportement peut être différent lorsqu’un entier est analysé comme une date ou un horodatage.

Cryptographique

TransactSQL

Snowflake

Remarques

ASYMKEY_ID

*à définir

ASYMKEYPROPERTY

*à définir

CERTENCODED

*à définir

CERTPRIVATEKEY

*à définir

DECRYPTBYASYMKEY

*à définir

DECRYPTBYCERT

*à définir

DECRYPTBYKEY

*à définir

DECRYPTBYKEYAUTOASYMKEY

*à définir

DECRYPTBYKEYAUTOCERT

*à définir

DECRYPTBYPASSPHRASE

_*à définir_​

Peut être imité avec DENCRYPT_RAW

ENCRYPTBYASYMKEY

*à définir

ENCRYPTBYCERT

*à définir

ENCRYPTBYKEY

*à définir

ENCRYPTBYPASSPHRASE

*à définir

Peut être imité avec ENCRYPT_RAW

HASHBYTES

MD5, SHA1, SHA2

<p>Actuellement, seul le hachage séparé est pris en charge. Utilisez l’algorithme approprié selon l’exigence</p><p>MD5, est une chaîne de 32 caractères codés en hexadécimal</p><p>SHA1, est une chaîne de 40 caractères codés en hexadécimal contenant le résumé de message de 160 bits</p><p>SHA2, une chaîne codée en hexadécimal contenant le résumé de message de N bits SHA-2. Les tailles sont les suivantes :</p><p>224 = SHA-224</p><p>256 = SHA-256 (par défaut)</p><p>384 = SHA-384</p><p>512 = SHA-512</p>

IS_OBJECTSIGNED

*à définir

KEY_GUID

*à définir

KEY_ID

*à définir

KEY_NAME

*à définir

SIGNBYASYMKEY

*à définir

SIGNBYCERT

*à définir

SYMKEYPROPERTY

*à définir

VERIGYSIGNEDBYCERT

*à définir

Curseur

TransactSQL

Snowflake

Remarques

@@CURSOR_ROWS

*à définir

@@FETCH_STATUS

*à définir

CURSOR_STATUS

*à définir

Type de données

TransactSQL

Snowflake

Remarques

DATALENGTH

OCTET_LENGTH

​Snowflake n’utilise pas d’octets fractionnés, la longueur est donc toujours calculée comme 8 * OCTET_LENGTH

IDENT_SEED

*à définir

IDENT_CURRENT

*à définir

IDENTITY

*à définir

IDENT_INCR

*à définir

SQL_VARIANT_PROPERTY

*à définir

Date et heure

TransactSQL

Snowflake

Remarques

@@DATEFIRST

*à définir

@@LANGUAGE

*à définir

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

CURRENT_TIMEZONE

*à définir

DATEADD

DATEADD

DATEDIFF

DATEDIFF

DATEDIFF_BIG

*à définir

DATEFROMPARTS

DATE_FROM_PARTS

DATENAME

*à définir

<p>Cette fonction reçoit deux arguments : une partie de date et une date. Elle renvoie une chaîne. Voici les datesparts prises en charge entre TSQL et Snowflake</p><p>year, yyyy, yy -> DATE_PART(YEAR, « $date ») quarter, qq, q -> DATE_PART(QUARTER, « $date »)<br>month, mm, m -> MONTHNAME( « $date »), thou only providing a three-letter english month name<br>dayofyear, dy, y -> DATE_PART(DAYOFYEAR, « $date »)<br>day, dd, d -> DATE_PART(DAY, « $date »)<br>week, wk, ww -> DATE_PART(WEEK, « $date »)</p><p>weekday, dw -> DAYNAME(« $date »), thou only providing an three-letter english day name<br>hour, hh -> DATE_PART(HOUR, « $date »)<br>minute, n -> DATE_PART(MINUTE, « $date »)<br>second, ss, s -> DATE_PART(SECOND, « $date »)<br>millisecond, ms -> DATE_PART(MS, « $date ») microsecond, mcs -> DATE_PART(US, « $date »)<br>nanosecond, ns -> DATE_PART(NS, « $date »)<br>TZoffset, tz -> a besoin d’une implémentation spéciale pour obtenir le décalage temporel</p>

DATEPART

DATE_PART

DATETIME2FROMPARTS

*à définir

DATETIMEFROMPARTS

*à définir

​Peut être imité en utilisant une combinaison de DATE_FROM_PARTS et TIME_FROM_PARTS

DATETIMEOFFSETFROMPARTS

*à définir

DAY

DAY

EOMONTH

*à définir

Peut être imité avec LAST_DAY

FORMAT

*à définir

Mappage avec TO_CHAR

GETDATE

GETDATE

GETUTCDATE

*à définir

Peut être imité avec CONVERT_TIMEZONE

ISDATE

*à définir

<p>Peut être imité en utilisant TRY_TO_DATE</p><p>Renvoie NULL si la valeur n’est pas une date, sinon renvoie la valeur de la date telle quelle.<br>Lors de l’utilisation d’opérateurs tels que &#x3C ;, >, =, &#x3C ;> doit alors être suivi d’un NULL</p>

MONTH

MONTH

SMALLDATETIMEFROMPARTS

*à définir

​​Peut être imité en utilisant une combinaison de DATE_FROM_PARTS et TIME_FROM_PARTS

SWITCHOFFSET

*à définir

​Peut être imité avec CONVERT_TIMEZONE

SYSDATETIME

LOCALTIME

SYSDATETIMEOFFSET

*à définir

​Peut être imité en utilisant CONVERT_TIMEZONE et LOCALTIME

SYSUTCDATETIME

*à définir

​​Peut être imité en utilisant CONVERT_TIMEZONE et LOCALTIME

TIMEFROMPARTS

TIME_FROM_PARTS

TODATETIMEOFFSET

*à définir

​Peut être imité avec CONVERT_TIMEZONE

YEAR

YEAR

JSON

TransactSQL

Snowflake

Remarques

ISJSON

CHECK_JSON

​Il s’agit d’une fonction d’aperçu dans Snowflake

JSON_VALUE

*à définir

<p>Peut être imité en utilisant</p><p>TO_VARCHAR(GET_PATH(PARSE_JSON(JSON), PATH))</p>

JSON_QUERY

*à définir

JSON_MODIFY

*à définir

Mathématiques

TransactSQL

Snowflake

Remarques

ABS

ABS

ACOS

ACOS

ASIN

ASIN

ATAN

ATAN

ATN2

ATAN2

CEILING

CEIL

COS

COS

COT

COT

DEGREES

DEGREES

EXP

EXP

FLOOR

FLOOR

LOG

LN

LOG10

LOG

PI

PI

POWER

POWER

RADIANS

RADIANS

RAND

RANDOM

ROUND

ROUND

SIGN

SIGN

SIN

SIN

SQRT

SQRT

SQUARE

SQUARE

Logique

TransactSQL

Snowflake

Remarques

CHOOSE

*à définir

Peut être imité avec DECODE

GREATEST

GREATEST

IIF

IIF

LEAST

LEAST

NULLIF

NULLIF

Métadonnées

TransactSQLSnowflakeNotes
TransactSQLSnowflakeNotes
@@PROCID*to be defined
APP_NAME*to be defined
APPLOCK_MODE*to be defined
APPLOCK_TEST*to be defined
ASSEMBLYPROPERTY*to be defined
COL_LENGTH*to be defined
COL_NAME*to be defined
COLUMNPROPERTY*to be defined
DATABASE_PRINCIPAL_ID*to be definedMaps to CURRENT_USER when no args
DATABASEPROPERTYEX*to be defined
DB_ID*to be definedWe recommend changing to CURRENT_DATABASE(). If there is a need to emulate this functionality.
SELECT DATE_PART(EPOCH,CREATED) FROM INFORMATION_SCHEMA.DATABASES WHERE DATABASE_NAME = 'DB' ;
Can achieve something similar
DB_NAME*to be definedMostly used in the procedurename mentioned above
FILE_ID*to be defined
FILE_IDEX*to be defined
FILE_NAME*to be defined
FILEGROUP_ID*to be defined
FILEGROUP_NAME*to be defined
FILEGROUPPROPERTY*to be defined
FILEPROPERTY*to be defined
FULLTEXTCATALOGPROPERTY*to be defined
FULLTEXTSERVICEPROPERTY*to be defined
INDEX_COL*to be defined
INDEXKEY_PROPERTY*to be defined
INDEXPROPERTY*to be defined
NEXT VALUE FOR*to be defined
OBJECT_DEFINITION*to be defined
OBJECT_ID*to be definedIn most cases can be replaced. Most cases are like: IF OBJECT_ID('dbo.TABLE') IS NOT NULL DROP TABLE dbo.Table which can be replaced by a DROP TABLE IF EXISTS (this syntax is also supported in SQL SERVER). If the object_id needs to be replicated, a UDF is added depending on the second parameter of the function call.
OBJECT_NAME*to be definedCan be replaced by: CREATE OR REPLACE PROCEDURE FOO() RETURNS STRING LANGUAGE JAVASCRIPT AS ' var rs = snowflake.execute({sqlText:SELECT CURRENT_DATABASE() || '.' || ?, binds:[arguments.callee.name]}); rs.next(); var procname = rs.getColumnValue(1); return procname; ';
OBJECT_NAME(@@PROCID)'ObjectName'

This transformation only occurs when it is inside a DeclareStatement.

ObjectName is the name of the TopLevelObject that contains the Function.

OBJECT_SCHEMA_NAME*to be defined
OBJECT_SCHEMA_NAME(@@PROCID):OBJECT_SCHEMA_NAMEThis transformation only occurs when it is inside a DeclareStatement.
OBJECTPROPERTY*to be defined
OBJECTPROPERTYEX*to be defined
ORIGINAL_DB_NAME*to be defined
PARSENAMEPARSENAME_UDFIt creates a UDF to emulate the same behavior of Parsename function.
*to be defined
SCHEMA_NAME*to be defined
SCOPE_IDENTITY*to be definedIt this is needed I would recommend to use sequences, and capture the value before insert
SERVERPROPERTY*to be defined
STATS_DATE*to be defined
TYPE_ID*to be defined
TYPE_NAME*to be defined
TYPEPROPERTY*to be defined
VERSION*to be defined

Classement

TransactSQL

Snowflake

Remarques

DENSE_RANK

DENSE_RANK

NTILE

NTILE

RANK

RANK

ROW_NUMBER

ROW_NUMBER

Réplication

TransactSQL

Snowflake

Remarques

PUBLISHINGSERVERNAME

*à définir

Rowset

TransactSQL

Snowflake

Remarques

OPENDATASOURCE

*à définir

OPENJSON

*à définir

QPENQUERY

*à définir

OPENROWSET

*à définir

OPENXML

OPENXML_UDF

Fonction définie par l’utilisateur utilisée comme comportement équivalent dans Snowflake.

Sécurité

TransactSQL

Snowflake

Remarques

CERTENCODED

*à définir

CERTPRIVATEKEY

*à définir

CURRENT_USER

CURRENT_USER

DATABASE_PRINCIPAL_ID

*à définir

HAS_PERMS_BY_NAME

*à définir

IS_MEMBER

*à définir

Passer à la requête INFORMATION_SCHEMA bien que le client puisse avoir besoin de définir de nouveaux rôles

IS_ROLEMEMBER

*à définir

<p>Snowflake a une fonction similaire</p><p>IS_ROLE_IN_SESSION</p>

IS_SRVROLEMEMBER

*à définir

LOGINPROPERTY

*à définir

ORIGINAL_LOGIN

*à définir

PERMISSIONS

*à définir

PWDCOMPARE

*à définir

PWDENCRYPT

*à définir

SCHEMA_ID

*à définir

SCHEMA_NAME

*à définir

SESSION_USER

*à définir

SUSER_ID

*à définir

SUSER_NAME

*à définir

SUSER_SID

*à définir

SUSER_SNAME

*à définir

sys.fn_builtin_permissions

*à définir

sys.fn_get_audit_file

*à définir

sys.fn_my_permissions

*à définir

SYSTEM_USER

*à définir

USER_ID

*à définir

USER_NAME

*à définir

Mappage avec CURRENT_USER

Chaîne

TransactSQL

Snowflake

Remarques

ASCII

ASCII

CHAR

CHR, CHAR

CHARINDEX

CHARINDEX

CONCAT

CONCAT

CONCAT_WS

CONCAT_WS

COALESCE

COALESCE

DIFFERENCE

*à définir

FORMAT

*à définir

LEFT

LEFT

LEN

LEN

LOWER

LOWER

LTRIM

LTRIM

NCHAR

*à définir

PATINDEX

*à définir

Mappage avec REGEXP_INSTR

QUOTENAME

QUOTENAME_UDF

Crée une UDF pour émuler le même comportement que la fonction Quotename

REPLACE

REPLACE

REPLICATE

REPEAT

REVERSE

REVERSE

RIGHT

RIGHT

RTRIM

RTRIM

SOUNDEX

SOUNDEX

SPACE

*à définir

STR

*à définir

STRING_AGG

*à définir

STRING_ESCAPE

*à définir

STRING_SPLIT

SPLIT_TO_TABLE

STUFF

*à définir

CREATE OR REPLACE FUNCTION STUFF(S string, STARTPOS int, LENGTH int, NEWSTRING string) RETURNS string LANGUAGE SQL AS “ left(S, STARTPOS)

SUBSTRING

SUBSTRING

TRANSLATE

TRANSLATE

TRIM

TRIM

UNICODE

UNICODE

UPPER

UPPER

Système

TransactSQL

Snowflake

Remarques

$PARTITION

*à définir

@@ERROR

*à définir

@@IDENTITY

*à définir

Si cela est nécessaire, je recommanderais d’utiliser des séquences et de capturer la valeur avant l’insertion

@@PACK_RECEIVED

*à définir

@@ROWCOUNT

*à définir

@@TRANCOUNT

*à définir

BINARY_CHECKSUM

*à définir

CHECKSUM

*à définir

COMPRESS

COMPRESS

<p>La version Snowflake a un argument de méthode pour indiquer la méthode de compression. Voici les valeurs valides : SNAPPY, ZLIB, ZSTD, BZ2</p><p>Le niveau de compression est spécifié entre parenthèses et doit être un entier non négatif</p>

CONNECTIONPROPERTY

*à définir

CONTEXT_INFO

*à définir

CURRENT_REQUEST_ID

*à définir

CURRENT_TRANSACTION_ID

*à définir

DECOMPRESS

*à définir

Snowflake dispose de deux fonctions pour cela : DECOMPRESS_BINARY et DECOMPRESS_STRING

ERROR_LINE

*à définir

Mappage avec l’assistant ERROR_LINE. L’assistant EXEC capturera la propriété de la ligne d’exception dans la trace de la pile.

ERROR_MESSAGE

SQLERRM

ERROR_NUMBER

*à définir

Mappage avec l’assistant ERROR_NUMBER. L’assistant EXEC capturera la propriété Code d’exception.

ERROR_PROCEDURE

*à définir

Mappage avec l’assistant ERROR_PROCEDURE, extrait de la propriété de procédure arguments.callee.name

ERROR_SEVERITY

*à définir

ERROR_STATE

*à définir

L’assistant capturera la propriété de l’état d’exception

FORMATMESSAGE

FORMATEMESSAGE_UDF

Crée une UDF pour émuler le même comportement que la fonction FORMATMESSAGE, mais avec certaines limites.

GET_FILESTREAM_TRANSACTION_CONTEXT

*à définir

GETANSINULL

*à définir

HOST_ID

*à définir

HOST_NAME

*à définir

ISNULL

NVL

ISNUMERIC

*à définir

Il n’y a pas d’équivalent direct, mais peut être mappé à une UDF personnalisée, renvoyant les mêmes valeurs que dans TSQL.

MIN_ACTIVE_ROWVERSION

*à définir

NEWID

*à définir

​Mappage avec UUID_STRING

NEWSEQUENTIALID

*à définir

ROWCOUNT_BIG

*à définir

SESSION_CONTEXT

*à définir

SESSION_ID

*à définir

XACT_STATE

*à définir

Système statistique

TransactSql

Snowflake

Remarques

@@CONNECTIONS

*à définir

<p>Snowflake a une fonction similaire : LOGIN_HISTORY.</p><p>Renvoie les événements de connexion dans un intervalle de temps spécifié</p>

@@PACK_RECEIVED

*à définir

@@CPU_BUSY

*à définir

@@PACK_SENT

*à définir

@@TIMETICKS

*à définir

@@IDLE

*à définir

@@TOTAL_ERRORS

*à définir

@@IO_BUSY

*à définir

@@TOTAL_READ

*à définir

@@PACKET_ERRORS

*à définir

@@TOTAL_WRITE

*à définir

Texte et image

TransactSQL

Snowflake

Remarques

TEXTPTR

*à définir

TEXTVALID

*à définir

Déclencheur

TransactSQL

Snowflake

Remarques

COLUMNS_UPDATED

*à définir

EVENTDATA

*à définir

TRIGGER_NESTLEVEL

*à définir

UPDATE

*à définir

Fonctions système

ISNULL

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Remplace NULL par la valeur de remplacement spécifiée. (ISNULL dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

ISNULL ( check_expression , replacement_value )  

Copy

Documentation Snowflake SQL

NVL( <expr1> , <expr2> )

Copy

Exemples

Code :

 SELECT ISNULL(NULL, 'SNOWFLAKE') AS COMPANYNAME;
Copy

Résultat :

+-----------+
|COMPANYNAME|
+-----------+
|SNOWFLAKE  |
+-----------+

Copy

Code :

 SELECT
NVL(NULL, 'SNOWFLAKE') AS COMPANYNAME;
Copy

Résultat :

+-----------+
|COMPANYNAME|
+-----------+
|SNOWFLAKE  |
+-----------+

Copy

Problèmes connus

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

NEWID

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Crée une valeur unique de type uniqueidentifier. (NEWID dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

NEWID ( )  

Copy

Documentation Snowflake SQL

UUID_STRING()

Copy

Exemples

Avertissement

Les sorties peuvent être différentes parce qu’il génère un ID unique dans l’environnement d’exécution

Code :

 SELECT NEWID ( ) AS ID;
Copy

Résultat :

+------------------------------------+
|ID                                  |
+------------------------------------+
|47549DDF-837D-41D2-A59C-A6BC63DF7910|
+------------------------------------+

Copy

Code :

 SELECT
UUID_STRING( ) AS ID;
Copy

Résultat :

+------------------------------------+
|ID                                  |
+------------------------------------+
|6fd4312a-7925-4ad9-85d8-e039efd82089|
+------------------------------------+

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

NULLIF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une valeur nulle si les deux expressions spécifiées sont égales.

Modèle de source d’échantillon

Syntaxe

NULLIF ( check_expression , replacement_value )  

Copy

Documentation Snowflake SQL

NULLIF( <expr1> , <expr2> )

Copy

Exemples

Code :

 SELECT NULLIF(6,9) AS RESULT1, NULLIF(5,5) AS RESULT2;
Copy

Résultat :

+-------+-------+
|RESULT1|RESULT2|
+-------+-------+
|6      |null   |
+-------+-------+

Copy

Code :

 SELECT
NULLIF(6,9) AS RESULT1,
NULLIF(5,5) AS RESULT2;
Copy

Résultat :

+-------+-------+
|RESULT1|RESULT2|
+-------+-------+
|6      |null   |
+-------+-------+

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

@@ROWCOUNT

Applies to
  • [x] SQL Server

Description

Renvoie le nombre de lignes affectées par la dernière instruction. (@@ROWCOUNT dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

@@ROWCOUNT

Copy

Documentation Snowflake SQL

SQLROWCOUNT

Copy

Exemples

Code :

 CREATE TABLE table1
(
    column1 INT
);

CREATE PROCEDURE procedure1
AS
BEGIN
    declare @addCount int = 0;

    INSERT INTO table1 (column1) VALUES (1),(2),(3);
    set @addCount = @addCount + @@ROWCOUNT

    select @addCount
END
;
GO

EXEC procedure1;
Copy

Résultat :

+-+
| |
+-+
|3|
+-+

Copy

Code :

 CREATE OR REPLACE TABLE table1
(
    column1 INT
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "transact",  "convertedOn": "11/13/2024",  "domain": "test" }}'
;

CREATE OR REPLACE PROCEDURE procedure1 ()
RETURNS TABLE()
LANGUAGE SQL
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "transact",  "convertedOn": "11/13/2024",  "domain": "test" }}'
EXECUTE AS CALLER
AS
$$
    DECLARE
        ADDCOUNT INT := 0;
        ProcedureResultSet RESULTSET;
    BEGIN
         

        INSERT INTO table1 (column1) VALUES (1),(2),(3);
        ADDCOUNT := :ADDCOUNT + SQLROWCOUNT;
        ProcedureResultSet := (

        select
            :ADDCOUNT);
        RETURN TABLE(ProcedureResultSet);
    END;
$$;

CALL procedure1();
Copy

Résultat :

+----------+
|:ADDCOUNT |
+----------+
|    3     |
+----------+

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

FORMATMESSAGE

Applies to
  • [x] SQL Server

Description

Construit un message à partir d’un message existant dans sys.messages ou d’une chaîne fournie. (FORMATMESSAGE dans Transact-SQL).

Modèle de source d’échantillon

Snowflake ne prenant pas en charge la fonction FORMATMESSAGE, la fonction FORMATMESSAGE_UDF est ajoutée pour simuler son comportement.

Syntaxe

FORMATMESSAGE ( { msg_number  | ' msg_string ' | @msg_variable} , [ param_value [ ,...n ] ] )  

Copy

Exemples

Code :

 SELECT FORMATMESSAGE('This is the %s and this is the %s.', 'first variable', 'second variable') AS RESULT;
Copy

Résultat :

                                                     RESULT|
-----------------------------------------------------------+
This is the first variable and this is the second variable.|

Copy

Code :

 SELECT
--** SSC-FDM-TS0008 - FORMATMESSAGE WAS CONVERTED TO CUSTOM UDF FORMATMESSAGE_UDF AND IT MIGHT HAVE A DIFFERENT BEHAVIOR. **
FORMATMESSAGE_UDF('This is the %s and this is the %s.', ARRAY_CONSTRUCT('first variable', 'second variable')) AS RESULT;
Copy

Résultat :

RESULT                                                     |
-----------------------------------------------------------+
This is the first variable and this is the second variable.|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

  1. SSC-FDM-TS0008 : La fonction FORMATMESSAGE a été convertie en UDF.

FORMATMESSAGE_UDF

Snowflake n’a pas de fonction ayant la fonctionnalité de FORMATMESSAGE. SnowConvert génère l’UDF Python suivante pour émuler le comportement de FORMATMESSAGE.

 CREATE OR REPLACE FUNCTION FORMATMESSAGE_UDF(MESSAGE STRING, ARGS ARRAY)
RETURNS STRING
LANGUAGE python
IMMUTABLE
RUNTIME_VERSION = '3.8'
HANDLER = 'format_py'
as
$$
def format_py(message,args):
  return message % (*args,)
$$;
Copy

Cette UDF peut ne pas fonctionner correctement dans certains cas :

  • L’utilisation du caractère générique %I64d entraîne une erreur.

  • Si le nombre d’arguments de substitution est différent du nombre de caractères de remplacement, une erreur est générée.

  • Certains caractères de remplacement non signés comme %u ou %X ne se comporteront pas correctement lors du formatage de la valeur.

  • Il ne peut pas gérer les _ID de messages.

Fonctions de chaîne

CHAR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie un caractère d’un octet avec l’entier envoyé en paramètre sur la table ASCII (CHAR dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

CHAR( expression )

Copy

Documentation complète de Snowflake SQL

{CHR | CHAR} ( <input> )

Copy

Documentation complète de JavaScript

String.fromCharCode( expression1, ... , expressionN )

Copy

Exemples

Entrée :

 SELECT CHAR(170) AS SMALLEST_A
Copy

Sortie :

SMALLEST_A|      
-----------+
          ª| 

Copy

Code :

 SELECT
CHAR(170) AS SMALLEST_A;
Copy

Résultat :

SMALLEST_A|      
-----------+
          ª| 

Copy

Code :

 CREATE OR REPLACE FUNCTION get_char(expression float)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  return String.fromCharCode( EXPRESSION );
$$;

SELECT GET_CHAR(170) SMALLEST_A;
Copy

Résultat :

SMALLEST_A|      
-----------+
          ª| 

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

CHARINDEX

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie l’index de la première occurrence de la valeur spécifiée envoyée en paramètre lorsqu’elle correspond (CHARINDEX dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

CHARINDEX( expression_to_find, expression_to_search [, start] )

Copy

Documentation complète de Snowflake SQL

CHARINDEX( <expr1>, <expr2> [ , <start_pos> ] )

Copy

Documentation complète de JavaScript

String.indexOf( search_value [, index] )

Copy

Exemples

Code :

 SELECT CHARINDEX('t', 'Customer') AS MatchPosition;
Copy

Résultat :

      INDEX|      
-----------+
         33|

Copy

Code :

 SELECT
CHARINDEX('t', 'Customer') AS MatchPosition;
Copy

Résultat :

      INDEX|      
-----------+
         33|

Copy

Note

Dans Transact, les index commencent à 1, au lieu de JavaScript qui commence à 0.

Code :

 CREATE OR REPLACE FUNCTION get_index
(
  expression_to_find varchar, 
  expression_to_search varchar, 
  start_index  float
)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  return EXPRESSION_TO_SEARCH.indexOf(EXPRESSION_TO_FIND, START_INDEX)+1;
$$;

SELECT GET_INDEX('and', 'Give your heart and soul to me, and life will always be la vie en rose', 20) AS INDEX;
Copy

Résultat :

      INDEX|      
-----------+
         33|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

COALESCE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Évalue les arguments dans l’ordre et renvoie la valeur actuelle de la première expression qui, au départ, n’est pas évaluée à NULL. Par exemple, SELECT COALESCE(NULL, NULL, “third_value”, “fourth_value”); renvoie la troisième valeur parce que la troisième valeur est la première valeur qui n’est pas nulle. (COALESCE dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

COALESCE ( expression [ ,...n ] )   

Copy

Documentation Snowflake SQL

COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )

Copy

Exemples

Code :

 SELECT TOP 10 StartDate, 
COALESCE(EndDate,'2000-01-01') AS FIRST_NOT_NULL 
FROM HumanResources.EmployeeDepartmentHistory
Copy

Résultat :

StartDate |FIRST_NOT_NULL|
----------+--------------+
2009-01-14|    2000-01-01|
2008-01-31|    2000-01-01|
2007-11-11|    2000-01-01|
2007-12-05|    2010-05-30|
2010-05-31|    2000-01-01|
2008-01-06|    2000-01-01|
2008-01-24|    2000-01-01|
2009-02-08|    2000-01-01|
2008-12-29|    2000-01-01|
2009-01-16|    2000-01-01|

Copy

Code :

 SELECT TOP 10
StartDate,
COALESCE(EndDate,'2000-01-01') AS FIRST_NOT_NULL
FROM
HumanResources.EmployeeDepartmentHistory;
Copy

Résultat :

StartDate |FIRST_NOT_NULL|
----------+--------------+
2009-01-14|    2000-01-01|
2008-01-31|    2000-01-01|
2007-11-11|    2000-01-01|
2007-12-05|    2010-05-30|
2010-05-31|    2000-01-01|
2008-01-06|    2000-01-01|
2008-01-24|    2000-01-01|
2009-02-08|    2000-01-01|
2008-12-29|    2000-01-01|
2009-01-16|    2000-01-01|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

CONCAT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Réalise une concaténation de valeurs de chaînes avec d’autres. (CONCAT dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

CONCAT ( string_value1, string_value2 [, string_valueN ] )  

Copy

Documentation complète de Snowflake SQL

CONCAT( <expr1> [ , <exprN> ... ] )

<expr1> || <expr2> [ || <exprN> ... ]

Copy

Documentation complète de JavaScript

 String.concat( expression1, ..., expressionN )
Copy

Exemples

Code :

 SELECT CONCAT('Ray',' ','of',' ','Light') AS TITLE;
Copy

Sortie :

       TITLE|      
------------+
Ray of Light|   

Copy

Code :

 SELECT
CONCAT('Ray',' ','of',' ','Light') AS TITLE;
Copy

Sortie :

       TITLE|      
------------+
Ray of Light|   

Copy

Code :

  CREATE OR REPLACE FUNCTION concatenate_strs(strings array)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  var result = ""
  STRINGS.forEach(element => result = result.concat(element));
  return result;
$$;
SELECT concatenate_strs(array_construct('Ray',' ','of',' ','Light')) TITLE;
Copy

\ Sortie :

       TITLE|      
------------+
Ray of Light|    

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

LEFT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la partie droite d’une chaîne de caractères avec le nombre de caractères spécifié. (RIGHT dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

LEFT ( character_expression , integer_expression )  

Copy

Documentation complète de Snowflake SQL

LEFT ( <expr> , <length_expr> )

Copy

Fonction utilisée pour émuler le comportement

 function LEFT(string, index){
      if(index < 0){
          throw new RangeError('Invalid INDEX on LEFT function');
      }
      return string.slice( 0, index);
    }
  return LEFT(STR, INDEX);
Copy

Exemples

Code :

 SELECT LEFT('John Smith', 5) AS FIRST_NAME;
Copy

Sortie :

FIRST_NAME|
----------+
John      |

Copy

Code :

 SELECT LEFT('John Smith', 5) AS FIRST_NAME;
Copy

Sortie :

FIRST_NAME|
----------+
John      |

Copy

Code :

 CREATE OR REPLACE FUNCTION left_str(str varchar, index float)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
    function LEFT(string, index){
      if(index < 0){
          throw new RangeError('Invalid INDEX on LEFT function');
      }
      return string.slice( 0, index);
    }
  return LEFT(STR, INDEX);
$$;
SELECT LEFT_STR('John Smith', 5) AS FIRST_NAME;
Copy

\ Sortie :

FIRST_NAME|
----------+
John      |

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

LEN

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la longueur d’une chaîne (LEN dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

LEN( string_expression )

Copy

Documentation complète de Snowflake SQL

LENGTH( <expression> )
LEN( <expression> )

Copy

Documentation complète de JavaScript SQL

 string.length
Copy

Exemples

Code :

 SELECT LEN('Sample text') AS [LEN];
Copy

Sortie :

LEN|
---+
 11|

Copy

Code :

 SELECT LEN('Sample text') AS LEN;
Copy

Sortie :

LEN|
---+
 11|

Copy

Code :

 CREATE OR REPLACE FUNCTION get_len(str varchar)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  return STR.length;
$$;
SELECT GET_LEN('Sample text') LEN;
Copy

\ Sortie :

LEN|
---+
 11|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

LOWER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Convertit une chaîne en minuscules (LOWER dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 LOWER ( character_expression )  
Copy

Documentation complète de Snowflake SQL

 LOWER( <expr> )
Copy

Documentation complète de JavaScript SQL

 String.toLowerCase( )
Copy

Exemples

Code :

 SELECT LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') AS LOWERCASE;
Copy

Sortie :

LOWERCASE                            |
-------------------------------------+
you are a prediction of the good ones|

Copy

Code :

 SELECT LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') AS LOWERCASE;
Copy

Sortie :

LOWERCASE                            |
-------------------------------------+
you are a prediction of the good ones|

Copy

Code :

 CREATE OR REPLACE FUNCTION to_lower(str varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  return STR.toLowerCase();
$$;

SELECT TO_LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') LOWERCASE;
Copy

\ Sortie :

LOWERCASE                            |
-------------------------------------+
you are a prediction of the good ones|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

NCHAR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie le caractère UNICODE d’un entier envoyé en paramètre (NCHAR dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

NCHAR( expression )

Copy
Arguments

expression : Expression entière.

Type de renvoi

Valeur de la chaîne, qui dépend de l’entrée reçue.

Exemples

 SELECT NCHAR(170);
Copy
            |      
------------+
           ª|   

Copy

Note

L’équivalence de cette fonction dans JavaScript est documentée dans CHAR.

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

REPLACE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Remplace toutes les occurrences d’une valeur de chaîne spécifiée par une autre valeur de chaîne. (REPLACE dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

REPLACE ( string_expression , string_pattern , string_replacement )  

Copy

Documentation complète de Snowflake SQL

REPLACE( <subject> , <pattern> [ , <replacement> ] )

Copy
 String.replace( pattern, new_expression)
Copy

Exemples

Code :

 SELECT REPLACE('Real computer software', 'software','science') AS COLUMNNAME;
Copy

Sortie :

COLUMNNAME           |
---------------------+
Real computer science|

Copy

Code :

 SELECT REPLACE('Real computer software', 'software','science') AS COLUMNNAME;
Copy

Sortie :

COLUMNNAME           |
---------------------+
Real computer science|

Copy

Code :

 CREATE OR REPLACE FUNCTION REPLACER (str varchar, pattern varchar, new_expression varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
   return STR.replace( PATTERN, NEW_EXPRESSION );
$$;

SELECT REPLACER('Real computer software', 'software', 'science') AS COLUMNNAME;
Copy

\ Sortie :

COLUMNNAME             |
---------------------+
Real computer science|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

REPLICATE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Réplique une valeur de chaîne un nombre de fois spécifié (REPLICATE dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

REPLICATE( string_expression, number_expression )

Copy

Documentation Snowflake SQL

REPEAT(<input>, <n>)

Copy

Documentation de JavaScript

String.repeat( number_expression )

Copy

Exemples

Code :

 SELECT REPLICATE('Staying alive',5) AS RESULT
Copy

Résultat :

RESULT                                                           |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|

Copy

Code :

 SELECT REPEAT('Staying alive',5) AS RESULT;
Copy

Résultat :

RESULT                                                           |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|

Copy

Code :

 CREATE OR REPLACE FUNCTION REPEAT_STR (str varchar, occurrences float)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
 
   return STR.repeat( OCCURRENCES );
$$;

SELECT REPEAT_STR('Staying alive ', 5) AS RESULT;
Copy

Résultat :

RESULT                                                           |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

RTRIM

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une expression de caractère après suppression des espaces initiaux (RTRIM dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

RTRIM( string_expression )

Copy

Documentation complète de Snowflake SQL

RTRIM(<expr> [, <characters> ])

Copy

Fonction personnalisée utilisée pour émuler le comportement

 function RTRIM(string){
    return string.replace(/s+$/,"");
}
Copy

Exemples

Entrée :

 SELECT RTRIM('LAST TWO BLANK SPACES  ') AS [RTRIM]
Copy

Sortie :

RTRIM                |
---------------------+
LAST TWO BLANK SPACES|

Copy

Code :

 SELECT RTRIM('LAST TWO BLANK SPACES  ') AS RTRIM;
Copy

Résultat :

RTRIM                |
---------------------+
LAST TWO BLANK SPACES|

Copy

Code :

 CREATE OR REPLACE FUNCTION rtrim(str varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  function RTRIM(string){
    return string.replace(/s+$/,"");
    }
   return RTRIM( STR );
$$;

SELECT RTRIM('LAST TWO BLANK SPACES  ') AS RTRIM;
Copy

Résultat :

RTRIM                |
---------------------+
LAST TWO BLANK SPACES|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SPACE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie un nombre d’occurrences d’espaces vides (SPACE dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

SPACE ( integer_expression )  

Copy

Documentation complète de Snowflake SQL

SPACE(<n>)

Copy

Fonction personnalisée utilisée pour émuler le comportement

 function SPACE( occurrences ){
    return ' '.repeat( occurrences );
}
Copy

Exemples

Entrée :

 SELECT CONCAT('SOME', SPACE(5), 'TEXT') AS RESULT;
Copy

Sortie :

RESULT       |
-------------+
SOME     TEXT|

Copy

Entrée :

 SELECT CONCAT('SOME', SPACE(5), 'TEXT') AS RESULT;
Copy

Sortie :

RESULT       |
-------------+
SOME     TEXT|

Copy

Entrée :

 CREATE OR REPLACE FUNCTION SPACE(occurrences float)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
    function SPACE( occurrences ){
    return ' '.repeat( occurrences );
    }
    return SPACE( OCCURRENCES );
$$;

SELECT CONCAT('SOME', SPACE(5), 'TEXT') RESULT;
Copy

Sortie :

RESULT       |
-------------+
SOME     TEXT|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SUBSTRING

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une expression de caractère après suppression des espaces initiaux (RTRIM dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

SUBSTRING( string_expression, start, length )

Copy

Documentation complète de Snowflake SQL

SUBSTR( <base_expr>, <start_expr> [ , <length_expr> ] )

SUBSTRING( <base_expr>, <start_expr> [ , <length_expr> ] )

Copy

Fonction personnalisée utilisée pour émuler le comportement

 string.substring( indexA [, indexB])
Copy

Exemples

Entrée :

 SELECT SUBSTRING('abcdef', 2, 3) AS SOMETEXT;  
Copy

Sortie :

SOMETEXT|
--------+
bcd     |

Copy

Code :

 SELECT SUBSTRING('abcdef', 2, 3) AS SOMETEXT;  
Copy

Résultat :

SOMETEXT|
--------+
bcd     |

Copy

Code :

 CREATE OR REPLACE FUNCTION REPLACER_LENGTH(str varchar, index float, length float)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
    var start = INDEX - 1;
    var end = STR.length - (LENGTH - 1);
    return STR.substring(start, end);
$$;

SELECT REPLACER_LENGTH('abcdef', 2, 3) AS SOMETEXT;
Copy

Résultat :

SOMETEXT|
--------+
bcd     |

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

UPPER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Convertit une chaîne en majuscules (UPPER dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

UPPER( string_expression ) 

Copy

Documentation complète de Snowflake SQL

UPPER( <expr> )

Copy

Documentation complète de JavaScript SQL

 String.toUpperCase( )
Copy

Exemples

Code :

 SELECT UPPER('you are a prediction of the good ones') AS [UPPER]
Copy

Sortie :

+-------------------------------------+
|UPPER                                |
+-------------------------------------+
|YOU ARE A PREDICTION OF THE GOOD ONES|
+-------------------------------------+

Copy

Code :

 SELECT
UPPER('you are a prediction of the good ones') AS UPPER;
Copy

Sortie :

+-------------------------------------+
|UPPER                                |
+-------------------------------------+
|YOU ARE A PREDICTION OF THE GOOD ONES|
+-------------------------------------+

Copy

Code :

 CREATE OR REPLACE FUNCTION to_upper(str varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  return STR.toUpperCase();
$$;

SELECT TO_UPPER('you are a prediction of the good ones') UPPER;
Copy

\ Sortie :

UPPER                                |
-------------------------------------+
YOU ARE A PREDICTION OF THE GOOD ONES|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ASCII

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie le code numérique d’un caractère de la table ASCII (ASCII dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 ASCII( expression )
Copy
Arguments

expression : VARCVHAR ou expression CHAR.

Type de renvoi

INT.

Exemples

 SELECT ASCII('A') AS A , ASCII('a') AS a;
Copy
          A|          a|
-----------+ ----------+
         65|         97|    

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ASCII dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie le code numérique d’un caractère de la table ASCII (documentation de la fonctionJavaScript charCodeAt).

Modèle de source d’échantillon

Syntaxe

 string.charCodeAt( [index] )
Copy
Arguments

index(Facultatif) : Index de la chaîne pour obtenir le caractère et renvoyer son numéro de code dans la table ASCII. Si ce paramètre n’est pas spécifié, la valeur par défaut est 0. \

Type de renvoi

Int.

Exemples

 CREATE OR REPLACE FUNCTION get_ascii(c char)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  return C.charCodeAt();
$$;

SELECT GET_ASCII('A') A, GET_ASCII('a') a;
Copy
          A|          a|
-----------+ ----------+
         65|         97|    

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

QUOTENAME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une chaîne délimitée par des guillemets (QUOTENAME dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

QUOTENAME( string_expression [, quote_character])

Copy
Arguments

string_expression : Chaîne à délimiter.

quote_character : un caractère pour délimiter la chaîne.

Type de renvoi

NVARCHAR(258). Nulle si la citation est différente de (“), ([]), (« ), ( () ), ( >< ), ({}) or (`).

Exemples

 SELECT QUOTENAME('Hello', '`') AS HELLO;
Copy
    HELLO|      
---------+
  `Hello`|  

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

QUOTENAME dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Malheureusement, cette fonctionnalité n’est pas disponible dans JavaScript, mais elle peut être mise en œuvre à l’aide de fonctions prédéfinies.

Modèle de source d’échantillon

Exemple de mise en œuvre

 function QUOTENAME(string, quote){
    return quote.concat(string, quote);
}
Copy
Arguments

string : Expression de chaîne à délimiter.

quote : Citation à utiliser comme délimiteur.

Type de renvoi

Chaîne.

Exemples

 CREATE OR REPLACE FUNCTION QUOTENAME(str varchar, quote char)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  function QUOTENAME(string, quote){
    const allowed_quotes = /[\']|[\"]|[(]|[)]|[\[]|[\]]|[\{]|[\}]|[\`]/;
    
    if(!allowed_quotes.test(quote)) throw new TypeError('Invalid Quote');
    
    return quote.concat(string, quote);
  }
   return QUOTENAME(STR, QUOTE);
$$;

SELECT QUOTENAME('Hola', '`') HELLO;
Copy
    HELLO|      
---------+
  `Hello`| 

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

CONCAT_WS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Effectue une concaténation de valeurs de chaînes avec d’autres en utilisant un séparateur entre elles (CONCAT_WS in Transact-SQL).

Modèle de source d’échantillon

Syntaxe

CONCAT_WS( separator, expression1, ... ,expressionN )

Copy
Arguments

separator : Séparateur à joindre.

expression1, ... ,expressionN : Expression à trouver dans une chaîne.

Type de renvoi

Valeur de la chaîne, dépend de l’entrée reçue.

Exemples

 SELECT CONCAT_WS(' ', 'Mariah','Carey') AS NAME;
Copy
        NAME|      
------------+
Mariah Carey|   

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

Join dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Concatène les arguments de la chaîne à la chaîne appelante à l’aide d’un séparateur (documentation JavaScript sur la fonction Join).

Modèle de source d’échantillon

Syntaxe

 Array.join( separator )
Copy
Arguments

separator : Caractère à joindre.

Type de renvoi

Chaîne.

Exemples

 CREATE OR REPLACE FUNCTION join_strs(separator varchar, strings array)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  return STRINGS.join(SEPARATOR);
$$;
SELECT join_strs(' ',array_construct('Mariah','Carey')) NAME;
Copy
        NAME|      
------------+
Mariah Carey|   

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SOUNDEX

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie un code à quatre caractères permettant d’évaluer la similarité de deux chaînes (SOUNDEX dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

SOUNDEX( string_expression )

Copy
Arguments

string_expression : Expression de chaîne à inverser.

Type de renvoi

Le même type de données que l’expression de la chaîne envoyée en paramètre.

Exemples

 SELECT SOUNDEX('two') AS TWO , SOUNDEX('too') AS TOO;
Copy
      TWO|      TOO|
---------+---------+
     T000|     T000| 

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SOUNDEX dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Malheureusement, JavaScript ne fournit pas de méthode permettant d’exécuter l’algorithme SOUNDEX, mais il est possible de l’implémenter manuellement.

Modèle de source d’échantillon

Exemple de mise en œuvre

 const dic = {A:0, B:1, C:2, D:3, E:0, F:1, G:2, H:0, I:0, J:2, K:2, L:4, M:5, N:5, O:0, P:1, Q:2, R:6, S:2, T:3, U:0, V:1, W:0, X:2, Y:0, Z:2};

  function getCode(letter){
      return dic[letter.toUpperCase()];
  }

  function SOUNDEX(word){
    var initialCharacter = word[0].toUpperCase();
    var initialCode = getCode(initialCharacter);
    for(let i = 1; i < word.length; ++i) {
        const letterCode = getCode(word[i]);
        if (letterCode && letterCode != initialCode) {
             initialCharacter += letterCode;
             if(initialCharacter.length == 4) break;
        }
        initialCode = letterCode;
    }
      
      return initialCharacter.concat( '0'.repeat( 4 - initialCharacter.length));
      
  }
Copy
Arguments

word : expression de la chaîne pour obtenir son équivalence SOUNDEX.

Type de renvoi

Chaîne.

Exemples

 CREATE OR REPLACE FUNCTION get_soundex(str varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  const dic = {A:0, B:1, C:2, D:3, E:0, F:1, G:2, H:0, I:0, J:2, K:2, L:4, M:5, N:5, O:0, P:1, Q:2, R:6, S:2, T:3, U:0, V:1, W:0, X:2, Y:0, Z:2};

  function getCode(letter){
      return dic[letter.toUpperCase()];
  }

  function SOUNDEX(word){
    var initialCharacter = word[0].toUpperCase();
    var initialCode = getCode(initialCharacter);
    for(let i = 1; i < word.length; ++i) {
        const letterCode = getCode(word[i]);
        if (letterCode && letterCode != initialCode) {
             initialCharacter += letterCode;
             if(initialCharacter.length == 4) break;
        }
        initialCode = letterCode;
    }
    
    return initialCharacter.concat( '0'.repeat( 4 - initialCharacter.length));    
  }
  
  return SOUNDEX( STR );
$$;

SELECT GET_SOUNDEX('two') AS TWO , GET_SOUNDEX('too') AS TOO;
Copy
      TWO|      TOO|
---------+---------+
     T000|     T000| 

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

REVERSE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Inverse une chaîne (REVERSE dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

REVERSE( string_expression )

Copy
Arguments

string_expression : Expression de chaîne à inverser.

Type de renvoi

Le même type de données que l’expression de la chaîne envoyée en paramètre.

Exemples

 SELECT REVERSE('rotator') AS PALINDROME;
Copy
      PALINDROME|      
----------------+
         rotator|  

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

reverse dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Malheureusement, cette fonctionnalité n’est pas disponible dans JavaScript, mais elle peut être mise en œuvre à l’aide de fonctions prédéfinies.

Modèle de source d’échantillon

Exemple de mise en œuvre

 function REVERSE(string){
    return string.split("").reverse().join("");
}
Copy
Arguments

string : Expression de chaîne à inverser.

Type de renvoi

Chaîne.

Exemples

 CREATE OR REPLACE FUNCTION REVERSE(str varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
   return STR.split("").reverse().join("");
$$;

SELECT REVERSE('rotator') PALINDROME;
Copy
      PALINDROME|      
----------------+
         rotator|  

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

STRING_ESCAPE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Échappe les caractères spéciaux dans les textes et renvoie le texte avec les caractères échappés. (STRING_ESCAPE dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

STRING_ESCAPE( text, type )

Copy
Arguments

text : Texte pour l’échappement des caractères.

type : Format type pour échapper aux caractères. Actuellement, JSON est le seul format pris en charge.

Type de renvoi

VARCHAR.

Exemples

 SELECT STRING_ESCAPE('\   /  \\    "     ', 'json') AS [ESCAPE];  
Copy
                    ESCAPE|
--------------------------+
  \\   \/  \\\\    \"     | 

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

stringify dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Convertit un objet en un format de chaîne JSON (documentation JavaScript sur la fonction stringify)

Modèle de source d’échantillon

Syntaxe

 JSON.stringify( value )
Copy
Arguments

value : Expression de l’objet à convertir.

Type de renvoi

Chaîne.

Exemples

 CREATE OR REPLACE FUNCTION string_escape (str varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
   return JSON.stringify( STR );
$$;

SELECT STRING_ESCAPE('\   /  \\    "     ') ESCAPE;
Copy
                    ESCAPE|
--------------------------+
  \\   \/  \\\\    \"     | 

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

TRIM

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une expression de caractères sans espaces vides (TRIM dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

TRIM( string_expression )

Copy
Arguments

string_expression : Expressions de chaînes à convertir.

Type de renvoi

VARCHAR ou NVARCHAR

Exemples

Code :

 SELECT TRIM('  FIRST AND LAST TWO BLANK SPACES  ') AS [TRIM];
Copy

Sortie :

+-------------------------------+
|TRIM                           |
+-------------------------------+
|FIRST AND LAST TWO BLANK SPACES|
+-------------------------------+

Copy

Code :

 SELECT TRIM('  FIRST AND LAST TWO BLANK SPACES  ') AS TRIM;
Copy

Sortie :

+-------------------------------+
|TRIM                           |
+-------------------------------+
|FIRST AND LAST TWO BLANK SPACES|
+-------------------------------+

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

trim dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Remplace les occurrences d’un modèle par un nouveau modèle envoyé en paramètre (documentation JavaScript sur la fonction Replace).

Modèle de source d’échantillon

Syntaxe

 String.trim( )
Copy
Arguments

Cette fonction ne reçoit aucun paramètre.

Type de renvoi

Chaîne.

Exemples

 CREATE OR REPLACE FUNCTION TRIM_STR(str varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
   return STR.trim( );
$$;

SELECT TRIM_STR('  FIRST AND LAST TWO BLANK SPACES  ')TRIM
Copy
                           TRIM|      
-------------------------------+
FIRST AND LAST TWO BLANK SPACES|   

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

DIFFERENCE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie un entier mesurant la différence entre deux chaînes utilisant l’algorithme SOUNDEX (DIFFERENCE in Transact-SQL). \ Compte les caractères communs des chaînes résultant de l’exécution de l’algorithme SOUNDEX.

Modèle de source d’échantillon

Syntaxe

DIFFERENCE( expression1, expression1 )

Copy
Arguments

expression1, expression2 : Expressions de chaînes à comparer.

Type de renvoi

Int.

Exemples

 SELECT DIFFERENCE('Like', 'Mike');
Copy
    Output |
-----------|
         3 |

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

DIFFERENCE dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Malheureusement, cette fonctionnalité n’est pas disponible dans JS, mais elle peut être facilement mise en œuvre.

Note

Cette fonctionnalité exige l’implémentation de l’algorithme SOUNDEX.

Modèle de source d’échantillon

Exemple de mise en œuvre

 function DIFFERENCE(strA, strB) {
    var count = 0;
    for (var i = 0; i < strA.length; i++){
       if ( strA[i] == strB[i] ) count++; 
    }
    
    return count;
}
Copy
Arguments

strA, strB : Expressions de chaînes résultant de l’exécution de l’algorithme SOUNDEX.

Type de renvoi

Chaîne.

Exemples

 CREATE OR REPLACE FUNCTION SOUNDEX_DIFFERENCE(str_1 varchar, str_2 varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
    function DIFFERENCE(strA, strB) {
      var count = 0;
      for (var i = 0; i < strA.length; i++){
         if ( strA[i] == strB[i] ) count++; 
      }
    
    return count;
    }
    
    return DIFFERENCE(STR_1, STR_2);
$$;

SELECT SOUNDEX_DIFFERENCE(GET_SOUNDEX('two'), GET_SOUNDEX('too')) DIFFERENCE;
Copy
   DIFFERENCE|
-------------+
            4| 

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

FORMAT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une valeur formatée avec le format spécifié et la culture optionnelle (FORMAT dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

FORMAT( value, format [, culture])

Copy
Arguments

value : Expressions de chaînes à donner au format.

format : Format souhaité.

culture (facultatif) : Argument NVarchar spécifiant la culture. S’il n’est pas spécifié, il prend les langues de la session en cours.

Type de renvoi

NULL si le paramètre de culture n’est pas valide, sinon, il suit les types de données suivants :

Catégorie

Type .NET

Numérique

bigint

Int64

Numérique

int

Int32

Numérique

smallint

Int16

Numérique

tinyint

Byte

Numérique

decimal

SqlDecimal

Numérique

numérique

SqlDecimal

Numérique

float

Double

Numérique

real

Single

Numérique

smallmoney

Décimal

Numérique

money

Décimal

Date et heure

date

DateTime

Date et heure

time

TimeSpan

Date et heure

datetime

DateTime

Date et heure

smalldatetime

DateTime

Date et heure

datetime2

DateTime

Date et heure

datetimeoffset

DateTimeOffset

Exemples

 SELECT FORMAT(CAST('2022-01-24' AS DATE), 'd', 'en-gb')  AS 'Great Britain';
Copy
  GREAT BRITAIN|      
---------------+
     24/01/2022|  

Copy
 SELECT FORMAT(244900.25, 'C', 'cr-CR')  AS 'CURRENCY';
Copy
       CURRENCY|      
---------------+
    ₡244,900.25|  

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

FORMAT dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Il existe différentes fonctions permettant de formater les dates et les valeurs entières dans JavaScript. Malheureusement, ces fonctionnalités ne sont pas intégrées dans une seule méthode.

Valeurs DateTime

Syntaxe

 Intl.DateTimeFormat( format ).format( value )
Copy
Arguments

locales (facultatif) : Expression sous forme de chaîne du format à appliquer.

options (facultatif) : Objet avec différentes propriétés prises en charge pour les formats d’expressions numériques (documentation JavaScript sur la fonction NumberFormat).

value : Expression numérique à formater.

Type de renvoi

Chaîne.

Valeurs numériques

Syntaxe

 Intl.NumberFormat( [locales [, options]] ).format( value )
Copy
Arguments

locales (facultatif) : Expression sous forme de chaîne du format à appliquer.

options (facultatif) : Objet avec différentes propriétés prises en charge pour les formats d’expressions numériques (documentation JavaScript sur la fonction NumberFormat).

value : Expression numérique à formater.

Type de renvoi

Chaîne.

Exemples

DateTime

 CREATE OR REPLACE FUNCTION format_date(date timestamp, format varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  return new Intl.DateTimeFormat( FORMAT ).format( DATE );
$$;
SELECT FORMAT_DATE(TO_DATE('2022-01-24'), 'en-gb') GREAT_BRITAIN;
Copy
  GREAT_BRITAIN|      
---------------+
     24/01/2022|  

Copy

Numérique

 CREATE OR REPLACE FUNCTION format_numeric(number float, locales varchar, options variant)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  return new Intl.NumberFormat( LOCALES , OPTIONS ).format( NUMBER );
$$;
SELECT FORMAT_NUMERIC(244900.25, 'de-DE', PARSE_JSON('{ style: "currency", currency: "CRC" }')) CURRENCY;
Copy
       CURRENCY|      
---------------+
 244.900,25 CRC|  

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

PATINDEX

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la position initiale de la première occurrence d’un modèle dans une expression spécifiée (PATINDEX in Transact-SQL).

Modèle de source d’échantillon

Syntaxe

PATINDEX( pattern, expression )

Copy
Arguments

pattern : Modèle à trouver.

expression : Expression à rechercher.

Type de renvoi

Entier. Renvoie 0 si le modèle n’est pas trouvé.

Exemples

 SELECT PATINDEX( '%on%', 'No, no, non esistono più') AS [PATINDEX]
Copy
    PATINDEX|      
------------+
          10|  

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

rechercher dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Recherche l’index d’un modèle à l’aide de REGEX (documentation JavaScript sur la fonction de recherche).

Modèle de source d’échantillon

Syntaxe

 String.search( regex )
Copy
Arguments

regex : Expression régulière qui correspond au modèle souhaité.

Type de renvoi

Entier. Si le modèle ne correspond à aucune partie de la chaîne, renvoie -1.

Exemples

 CREATE OR REPLACE FUNCTION get_index_pattern(pattern varchar, str varchar)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  function GET_PATTERN(pattern, string){
    return string.search(new RegExp( pattern ));
    }
   return GET_PATTERN(PATTERN, STR) + 1;
$$;

SELECT GET_INDEX_PATTERN('on+', 'No, no, non esistono più') PATINDEX;
Copy
    PATINDEX|      
------------+
          10|  

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

STR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie des données de caractère converties à partir de données numériques. Les données de caractère sont justifiées à droite, avec une longueur et une précision décimale spécifiées. (STR dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 STR ( float_expression [ , length [ , decimal ] ] ) 
Copy
 STR_UDF( numeric_expression, number_format )
Copy
Arguments

numeric_expression : Expression flottante avec un point décimal.

length (Facultatif) : Longueur de l’expression renvoyée, y compris la notation à points, la partie décimale et la partie flottante.

decimal(Facultatif) : Le nombre de chiffres situés à droite de la virgule décimale.

Type de renvoi

VARCHAR.

Exemples

Entrée :

 /* 1 */
SELECT STR(123.5);

/* 2 */
SELECT STR(123.5, 2);

/* 3 */
SELECT STR(123.45, 6);

/* 4 */
SELECT STR(123.45, 6, 1);
Copy

Sortie :

1) 124
2) **
3) 123
4) 123.5

Copy

Entrée :

 /* 1 */
SELECT
PUBLIC.STR_UDF(123.5, '99999');

/* 2 */
SELECT
PUBLIC.STR_UDF(123.5, '99');

/* 3 */
SELECT
PUBLIC.STR_UDF(123.45, '999999');

/* 4 */
SELECT
PUBLIC.STR_UDF(123.45, '9999.9');
Copy

Sortie :

1) 124
2) ##
3) 123
4) 123.5

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

STR dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Malheureusement, cette fonctionnalité n’est pas disponible dans JS, mais elle peut être mise en œuvre facilement en utilisant les fonctions prédéfinies pour les chaînes.

Modèle de source d’échantillon

Exemple de mise en œuvre

 function validLength(number, max_length, float_precision) {
  var float_point = number.match(/[\.][0-9]+/);
  /*if the number does not have point float, checks if the float precision 
   * and current number are greater than max_length
   */
   if(!float_point) return number.length + float_precision + 1 < max_length; 
    //removes the '.' and checks if there is overflow with the float_precision
    return number.length - float_point[0].trim('.').length + float_precision  < max_length;
} 
 function STR(number, max_length, float_precision) {
  var number_str = number.toString();
   //if the expression exceeds the max_length, returns '**'
   if(number_str.length > max_length || float_precision > max_length) return '**';
   if(validLength(number_str, max_length, float_precision)) {
      return number.toFixed(float_precision);
    }
    return number.toFixed(max_length - float_precision);
}
Copy
Arguments

number : Expression flottante avec un point décimal.

max_length : Longueur de l’expression renvoyée, incluant la notation du point, la partie décimale et les parties flottantes.

float_precision : Nmbre de chiffres à droite de la virgule décimale.

Type de renvoi

Chaîne.

Exemples

 CREATE OR REPLACE FUNCTION STR(number float, max_length float, float_precision float)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
    function validLength(number, max_length, float_precision) {
        var float_point = number.match(/[\.][0-9]+/);
        if(!float_point) return number.length + float_precision + 1 < max_length; 
        return number.length - float_point[0].trim('.').length + float_precision  < max_length;
    } 
    function STR(number, max_length, float_precision) {
      var number_str = number.toString();
      if(number_str.length > max_length || float_precision > max_length) return '**';
      if(validLength(number_str, max_length, float_precision)) {
        return number.toFixed(float_precision);
      }
      return number.toFixed(max_length - float_precision);
    }
    return STR( NUMBER, MAX_LENGTH, FLOAT_PRECISION );
$$;

SELECT STR(12345.674, 12, 6);
Copy
           STR|
--------------+
  12345.674000| 

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

LTRIM

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une expression de caractère après suppression des espaces initiaux (LTRIM dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

LTRIM( string_expression )

Copy
Arguments

string_expression : Expressions de chaînes à convertir.

Type de renvoi

VARCHAR ou NVARCHAR

Exemples

 SELECT LTRIM('  FIRST TWO BLANK SPACES') AS [LTRIM]
Copy
                 LTRIM|      
----------------------+
FIRST TWO BLANK SPACES|  

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

LTRIM dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Malheureusement, cette fonction n’est pas disponible dans JavaScript, mais elle peut être mise en œuvre à l’aide d’expressions régulières.

Modèle de source d’échantillon

Exemple de mise en œuvre

 function LTRIM(string){
    return string.replace(/^s+/,"");
}
Copy
Arguments

string : Expression de chaîne pour supprimer les espaces.

Type de renvoi

Chaîne.

Exemples

 CREATE OR REPLACE FUNCTION ltrim(str varchar)
  RETURNS string
  LANGUAGE JAVASCRIPT
AS
$$
  function LTRIM(string){
    return string.replace(/^s+/,"");
    }
   return LTRIM(S TR );
$$;

SELECT LTRIM('  FIRST TWO BLANK SPACES') AS LTRIM;
Copy
                 LTRIM|      
----------------------+
FIRST TWO BLANK SPACES|  

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

Fonctions de classement

Cette section décrit les équivalents fonctionnels des fonctions de classement dans le code Transact-SQL vers Snowflake SQL et JavaScript, orientés vers leur utilisation dans les procédures stockées de SnowFlake.

DENSE_RANK

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Cette fonction renvoie le rang de chaque ligne dans la partition d’un jeu de résultats, sans discontinuité dans les valeurs de classement. Le rang d’une ligne spécifique est égal à un plus le nombre de valeurs de rang distinctes qui précèdent cette ligne spécifique. (DENSE_RANK dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 DENSE_RANK ( ) OVER ( [ <partition_by_clause> ] < order_by_clause > )  
Copy

Documentation Snowflake SQL

 DENSE_RANK( )
-- ** SSC-EWI-0001 - UNRECOGNIZED TOKEN ON LINE '1' COLUMN '15' OF THE SOURCE CODE STARTING AT 'OVER'. EXPECTED 'BATCH' GRAMMAR. CODE '80'. **
--              OVER ( [ <partition_by_clause> ] < order_by_clause > )
Copy

Exemples

Code :

 SELECT TOP 10 BUSINESSENTITYID, NATIONALIDNUMBER, RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK FROM HUMANRESOURCES.EMPLOYEE AS TOTAL
Copy

Résultat :

BUSINESSENTITYID|NATIONALIDNUMBER|DENSE_RANK|
----------------+----------------+----------+
              57|10708100        |         1|
              54|109272464       |         2|
             273|112432117       |         3|
               4|112457891       |         4|
             139|113393530       |         5|
             109|113695504       |         6|
             249|121491555       |         7|
             132|1300049         |         8|
             214|131471224       |         9|
              51|132674823       |        10|

Copy

Code :

 SELECT TOP 10
BUSINESSENTITYID,
NATIONALIDNUMBER,
RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK
FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Copy

Résultat :

BUSINESSENTITYID|NATIONALIDNUMBER|DENSE_RANK|
----------------+----------------+----------+
              57|10708100        |         1|
              54|109272464       |         2|
             273|112432117       |         3|
               4|112457891       |         4|
             139|113393530       |         5|
             109|113695504       |         6|
             249|121491555       |         7|
             132|1300049         |         8|
             214|131471224       |         9|
              51|132674823       |        10|

Copy

EWIs connexes

  • SSC-EWI-0001 : Jeton non reconnu sur la ligne du code source.

RANK

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie le rang de chaque ligne dans la partition d’un jeu de résultats. Le rang d’une ligne est égal à un plus le nombre de rangs qui précèdent la ligne en question. (RANK dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 RANK ( ) OVER ( [ partition_by_clause ] order_by_clause )  
Copy

Documentation Snowflake SQL

 RANK( )
-- ** SSC-EWI-0001 - UNRECOGNIZED TOKEN ON LINE '1' COLUMN '9' OF THE SOURCE CODE STARTING AT 'OVER'. EXPECTED 'BATCH' GRAMMAR. CODE '80'. **
--        OVER ( [ partition_by_clause ] order_by_clause )
Copy

Exemples

Code :

 SELECT TOP 10 BUSINESSENTITYID, NATIONALIDNUMBER, RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK FROM HUMANRESOURCES.EMPLOYEE AS TOTAL
Copy

Résultat :

BUSINESSENTITYID|NATIONALIDNUMBER|RANK|
----------------+----------------+----+
              57|10708100        |   1|
              54|109272464       |   2|
             273|112432117       |   3|
               4|112457891       |   4|
             139|113393530       |   5|
             109|113695504       |   6|
             249|121491555       |   7|
             132|1300049         |   8|
             214|131471224       |   9|
              51|132674823       |  10|

Copy

Code :

 SELECT TOP 10
BUSINESSENTITYID,
NATIONALIDNUMBER,
RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK
FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Copy

Résultat :

BUSINESSENTITYID|NATIONALIDNUMBER|RANK|
----------------+----------------+----+
              57|10708100        |   1|
              54|109272464       |   2|
             273|112432117       |   3|
               4|112457891       |   4|
             139|113393530       |   5|
             109|113695504       |   6|
             249|121491555       |   7|
             132|1300049         |   8|
             214|131471224       |   9|
              51|132674823       |  10|

Copy

EWIs connexes

  • SSC-EWI-0001 : Jeton non reconnu sur la ligne du code source.

ROW_NUMBER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Numérise la sortie d’un jeu de résultats. Plus précisément, renvoie le numéro séquentiel d’une ligne à l’intérieur d’une partition d’un jeu de résultats, en commençant à 1 pour la première ligne de chaque partition. (ROW_NUMBER dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 ROW_NUMBER ( )   
    OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause )  
Copy

Documentation complète de Snowflake SQL

 ROW_NUMBER( )
-- ** SSC-EWI-0001 - UNRECOGNIZED TOKEN ON LINE '2' COLUMN '5' OF THE SOURCE CODE STARTING AT 'OVER'. EXPECTED 'BATCH' GRAMMAR. CODE '80'. **
--    OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause )
Copy

Exemples

Code :

 SELECT 
ROW_NUMBER() OVER(ORDER BY NAME  ASC) AS RowNumber, 
NAME
FROM HUMANRESOURCES.DEPARTMENT
Copy

Sortie :

RowNumber|NAME                      |
---------+--------------------------+
        1|Document Control          |
        2|Engineering               |
        3|Executive                 |
        4|Facilities and Maintenance|
        5|Finance                   |
        6|Human Resources           |
        7|Information Services      |
        8|Marketing                 |
        9|Production                |
       10|Production Control        |
       11|Purchasing                |
       12|Quality Assurance         |
       13|Research and Development  |
       14|Sales                     |
       15|Shipping and Receiving    |
       16|Tool Design               |

Copy

Code :

 SELECT
ROW_NUMBER() OVER(ORDER BY NAME ASC) AS RowNumber,
NAME
FROM
HUMANRESOURCES.DEPARTMENT;
Copy

Sortie :

RowNumber|NAME                      |
---------+--------------------------+
        1|Document Control          |
        2|Engineering               |
        3|Executive                 |
        4|Facilities and Maintenance|
        5|Finance                   |
        6|Human Resources           |
        7|Information Services      |
        8|Marketing                 |
        9|Production                |
       10|Production Control        |
       11|Purchasing                |
       12|Quality Assurance         |
       13|Research and Development  |
       14|Sales                     |
       15|Shipping and Receiving    |
       16|Tool Design               |

Copy

EWIs connexes

  • SSC-EWI-0001 : Jeton non reconnu sur la ligne du code source.

Fonctions logiques

IIF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie l’une des deux valeurs, selon que l’expression booléenne est évaluée à true ou false. (IIF dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

IIF( boolean_expression, true_value, false_value )

Copy

Documentation Snowflake SQL

IFF( <condition> , <expr1> , <expr2> )

Copy

Exemples

Code :

 SELECT IIF( 2 > 3, 'TRUE', 'FALSE' ) AS RESULT
Copy

Résultat :

RESULT|
------+
 FALSE|

Copy

Code :

 SELECT
IFF( 2 > 3, 'TRUE', 'FALSE' ) AS RESULT;
Copy

Résultat :

RESULT|
------+
 FALSE|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

Fonctions XML

Requête

Applies to
  • [x] SQL Server

Avertissement

Cette transformation sera proposée prochainement

Description

Spécifie un XQuery par rapport à une instance du type de données xml. Le résultat est de type xml. La méthode renvoie une instance XML non typée (Query() dans Transact-SQL)

Échantillons de modèles de sources

L’exemple suivant détaille la transformation pour .query( )

SQL Serveur

 CREATE TABLE xml_demo(object_col XML);

INSERT INTO xml_demo (object_col)
    SELECT
        '<Root>
<ProductDescription ProductID="1" ProductName="Road Bike">
<Features>
  <Warranty>1 year parts and labor</Warranty>
  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>';

INSERT INTO xml_demo (object_col)
    SELECT
        '<Root>
<ProductDescription ProductID="2" ProductName="Skate">
<Features>
  <Warranty>1 year parts and labor</Warranty>
  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>';

SELECT
    xml_demo.object_col.query('/Root/ProductDescription/Features/Warranty') as Warranty,
    xml_demo.object_col.query('/Root/ProductDescription/Features/Maintenance') as Maintenance
from xml_demo;
Copy
 Warranty                                     | Maintenance                                                                          |
----------------------------------------------+--------------------------------------------------------------------------------------+
<Warranty>1 year parts and labor</Warranty>   | <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>  |
<Warranty>1 year parts and labor</Warranty>   | <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>  |

Copy
Snowflake SQL
 CREATE OR REPLACE TABLE xml_demo (
    object_col VARIANT !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - XML DATA TYPE CONVERTED TO VARIANT ***/!!!
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
;

INSERT INTO xml_demo (object_col)
SELECT
    PARSE_XML(
    '<Root>
<ProductDescription ProductID="1" ProductName="Road Bike">
<Features>
  <Warranty>1 year parts and labor</Warranty>
  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>');

INSERT INTO xml_demo (object_col)
SELECT
    PARSE_XML(
    '<Root>
<ProductDescription ProductID="2" ProductName="Skate">
<Features>
  <Warranty>1 year parts and labor</Warranty>
  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>');

SELECT
    XMLGET(XMLGET(XMLGET(object_col, 'ProductDescription'), 'Features'), 'Warranty') as Warranty,
    XMLGET(XMLGET(XMLGET(object_col, 'ProductDescription'), 'Features'), 'Maintenance') as Maintenance
from
    xml_demo;
Copy
 Warranty                                     | Maintenance                                                                          |
----------------------------------------------+--------------------------------------------------------------------------------------+
<Warranty>1 year parts and labor</Warranty>   | <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>  |
<Warranty>1 year parts and labor</Warranty>   | <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>  |

Copy

Problèmes connus

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

EWIs connexes

  1. SSC-EWI-0036 : Type de données converti en un autre type de données.

Valeur

Applies to
  • [x] SQL Server

Avertissement

Cette transformation sera proposée prochainement

Description

Effectue un XQuery par rapport à XML et renvoie une valeur de type SQL. Cette méthode renvoie une valeur scalaire. (value() dans Transact-SQL).

Échantillons de modèles de sources

L’exemple suivant détaille la transformation pour .value( )

SQL Serveur

 CREATE TABLE xml_demo(object_col XML);

INSERT INTO xml_demo (object_col)
    SELECT
        '<Root>
<ProductDescription ProductID="1" ProductName="Road Bike">
<Features>
  <Warranty>1 year parts and labor</Warranty>
  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>';

INSERT INTO xml_demo (object_col)
    SELECT
        '<Root>
<ProductDescription ProductID="2" ProductName="Skate">
<Features>
  <Warranty>1 year parts and labor</Warranty>
  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>';

SELECT
    xml_demo.object_col.value('(/Root/ProductDescription/@ProductID)[1]', 'int' ) as ID,
    xml_demo.object_col.value('(/Root/ProductDescription/@ProductName)[1]', 'varchar(max)' ) as ProductName,
    xml_demo.object_col.value('(/Root/ProductDescription/Features/Warranty)[1]', 'varchar(max)' ) as Warranty
from xml_demo;
Copy
 ID | ProductName | Warranty               |
----+-------------+------------------------+
1   | Road Bike   | 1 year parts and labor |
2   | Skate       | 1 year parts and labor |

Copy
Snowflake SQL
 CREATE OR REPLACE TABLE xml_demo (
    object_col VARIANT !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - XML DATA TYPE CONVERTED TO VARIANT ***/!!!
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
;

INSERT INTO xml_demo (object_col)
SELECT
    PARSE_XML(
    '<Root>
<ProductDescription ProductID="1" ProductName="Road Bike">
<Features>
  <Warranty>1 year parts and labor</Warranty>
  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>');

INSERT INTO xml_demo (object_col)
SELECT
    PARSE_XML(
    '<Root>
<ProductDescription ProductID="2" ProductName="Skate">
<Features>
  <Warranty>1 year parts and labor</Warranty>
  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>');

SELECT
    GET(XMLGET(object_col, 'ProductDescription'), '@ProductID') :: INT as ID,
    GET(XMLGET(object_col, 'ProductDescription'), '@ProductName') :: VARCHAR as ProductName,
    GET(XMLGET(XMLGET(XMLGET(object_col, 'ProductDescription'), 'Features'), 'Warranty', 0), '$') :: VARCHAR as Warranty
from
    xml_demo;
Copy
 ID | PRODUCTNAME | WARRANRTY              |
----+-------------+------------------------+
1   | Road Bike   | 1 year parts and labor |
2   | Skate       | 1 year parts and labor |

Copy

Problèmes connus

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

EWIs connexes

  1. SSC-EWI-0036 : Type de données converti en un autre type de données.

Fonctions d’agrégation

COUNT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Cette fonction renvoie le nombre d’éléments trouvés dans un groupe. COUNT opère comme la fonction COUNT_BIG. Ces fonctions ne diffèrent que par le type de données de leurs valeurs de retour. COUNT renvoie toujours une valeur de type données int. COUNT_BIG renvoie toujours une valeur de type données bigint. (COUNT dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )  

Copy

Documentation Snowflake SQL

COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )

Copy

Exemples

Code :

 SELECT COUNT(NATIONALIDNUMBER) FROM HUMANRESOURCES.EMPLOYEE AS TOTAL;
Copy

Résultat :

TOTAL|
-----+
  290|

Copy

Code :

 SELECT
COUNT(NATIONALIDNUMBER) FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Copy

Résultat :

TOTAL|
-----+
  290|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

COUNT_BIG

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Cette fonction renvoie le nombre d’éléments trouvés dans un groupe. La fonction COUNT_BIG fonctionne comme la fonction COUNT. Ces fonctions ne diffèrent que par le type de données de leurs valeurs de retour. COUNT\BIG renvoie toujours une valeur de type données bigint. COUNT renvoie toujours une valeur de type données int. (COUNT_BIG dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

COUNT_BIG ( { [ [ ALL | DISTINCT ] expression ] | * } )  

Copy

Documentation Snowflake SQL

COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )

Copy

Exemples

Code :

 SELECT COUNT_BIG(NATIONALIDNUMBER) FROM HUMANRESOURCES.EMPLOYEE AS TOTAL;
Copy

Résultat :

TOTAL|
-----+
  290|

Copy

Code :

 SELECT
COUNT(NATIONALIDNUMBER) FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Copy

Résultat :

TOTAL|
-----+
  290|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SUM

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Renvoie la somme de toutes les valeurs, ou seulement les valeurs DISTINCT, de l’expression. SUM ne peut être utilisé qu’avec des colonnes numériques. Les valeurs nulles sont ignorées. (SUM dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

SUM ( [ ALL | DISTINCT ] expression )  

Copy

Documentation Snowflake SQL

SUM( [ DISTINCT ] <expr1> )

Copy

Exemples

Code :

 SELECT SUM(VACATIONHOURS) FROM HUMANRESOURCES.EMPLOYEE AS TOTALVACATIONHOURS;
Copy

Résultat :

TOTALVACATIONHOURS|
------------------+
             14678|

Copy

Code :

 SELECT
SUM(VACATIONHOURS) FROM
HUMANRESOURCES.EMPLOYEE AS TOTALVACATIONHOURS;
Copy

Résultat :

TOTALVACATIONHOURS|
------------------+
             14678|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

UDFs personnalisées SnowConvert

Description

Certaines fonctions ou certains comportements de Transact-SQL peuvent ne pas être disponibles ou se comporter différemment dans Snowflake. Pour minimiser ces différences, certaines fonctions sont remplacées par des UDFs personnalisées SnowConvert.

Ces UDFs sont automatiquement créées lors de la migration, dans le dossier UDF Helper, à l’intérieur du dossier Output. Il y a un fichier par UDF personnalisée.

OPENXML UDF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Cette UDF personnalisée est ajoutée pour traiter une vue rowset sur un document XML. Il est utilisé pour les déclarations, car il fonctionne comme un fournisseur rowset.

Les paramètres facultatifs et les différents types de nœuds ne sont pas pris en charge dans cette version de l’UDF. Le nœud de l’élément est traité par défaut.

Surcharges UDF personnalisées

Paramètres

  1. XML : Un VARCHAR qui représente le contenu lisible du XML.

  2. PATH : Un varchar qui contient le modèle des nœuds à traiter en tant que lignes.

 CREATE OR REPLACE FUNCTION OPENXML_UDF(XML VARCHAR, PATH VARCHAR)
RETURNS TABLE(VALUE VARIANT)
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"udf"}}'
AS
$$
SELECT VALUE from TABLE(FLATTEN(input=>XML_JSON_SIMPLE(PARSE_XML(XML)), path=>PATH))
$$;


CREATE OR REPLACE FUNCTION XML_JSON_SIMPLE(XML VARIANT)
RETURNS OBJECT
LANGUAGE JAVASCRIPT
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"udf"}}'
AS
$$
function toNormalJSON(xmlJSON) {
    var finalres = {};
    var name=xmlJSON['@'];
    var res = {};
    finalres[name] = res;
    for(var key in xmlJSON)
    {
        if (key == "@")
        {
            res["$name"] = xmlJSON["@"];
        }
        else if (key == "$") {
            continue;
        }
        else if (key.startsWith("@"))
        {
            // This is an attribute
            res[key]=xmlJSON[key];
        }
        else
        {
            var elements = xmlJSON['$']
            var value = xmlJSON[key];
            res[key] = [];
            if (Array.isArray(value))
            {
                for(var elementKey in value)
                {
                    var currentElement = elements[elementKey];
                    var fixedElement = toNormalJSON(currentElement);
                    res[key].push(fixedElement);
                }
            }
            else if (value === 0)
            {
                var fixedElement = toNormalJSON(elements);
                res[key].push(fixedElement);
            }
        }
    }
    return finalres;
}
return toNormalJSON(XML);
$$;
Copy

Transact-SQL

 DECLARE @idoc INT, @doc VARCHAR(1000);  
SET @doc ='  
<ROOT>  
<Customer CustomerID="VINET" ContactName="Paul Henriot">  
   <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">  
      <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>  
      <OrderDetail OrderID="10248" ProductID="42" Quantity="10"/>  
   </Order>  
</Customer>  
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">  
   <Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00">  
      <OrderDetail OrderID="10283" ProductID="72" Quantity="3"/>  
   </Order>  
</Customer>  
</ROOT>';  

EXEC sp_xml_preparedocument @idoc OUTPUT, @doc;  
 
SELECT *  FROM OPENXML (@idoc, '/ROOT/Customer',1)  
WITH (CustomerID  VARCHAR(10), ContactName VARCHAR(20)); 
Copy
CustomerID  | ContactName
----------------------------+
VINET	    | Paul Henriot
LILAS	    | Carlos Gonzlez

Copy
Snowflake

Note

L’exemple suivant est isolé dans une procédure stockée parce que les variables d’environnement ne prennent en charge que 256 octets de stockage et que le code de démonstration XML utilise plus que cette limite.

 DECLARE
IDOC INT;
DOC VARCHAR(1000);
BlockResultSet RESULTSET;
BEGIN
DOC := '  
<ROOT>  
<Customer CustomerID="VINET" ContactName="Paul Henriot">  
   <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">  
      <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>  
      <OrderDetail OrderID="10248" ProductID="42" Quantity="10"/>  
   </Order>  
</Customer>  
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">  
   <Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00">  
      <OrderDetail OrderID="10283" ProductID="72" Quantity="3"/>  
   </Order>  
</Customer>  
</ROOT>';
!!!RESOLVE EWI!!! /*** SSC-EWI-TS0075 - TRANSLATION FOR BUILT-IN PROCEDURE 'sp_xml_preparedocument' IS NOT CURRENTLY SUPPORTED. ***/!!!

EXEC sp_xml_preparedocument :IDOC OUTPUT, :DOC;
BlockResultSet := (

SELECT
Left(value:Customer['@CustomerID'], '10') AS 'CustomerID',
Left(value:Customer['@ContactName'], '20') AS 'ContactName'
FROM
OPENXML_UDF(:IDOC, ':ROOT:Customer'));
RETURN TABLE(BlockResultSet);
END;
Copy
CustomerID  | ContactName
----------------------------+
VINET	    | Paul Henriot
LILAS	    | Carlos Gonzlez

Copy
 SET code = '<ROOT>  
<Customer CustomerID="VINET" ContactName="Paul Henriot">  
   <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">  
      <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>  
   </Order>  
</Customer>  
</ROOT>';
SELECT
Left(value:Customer['@CustomerID'],10) as "CustomerID",  
Left(value:Customer['@ContactName'],20) as "ContactName"
FROM TABLE(OPENXML_UDF($code,'ROOT:Customer'));
Copy
CustomerID  | ContactName
----------------------------+
VINET	    | Paul Henriot

Copy

Problèmes connus

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

EWIs connexes

  1. SSC-EWI-TS0075 : Procédure intégrée non prise en charge.

STR UDF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette UDF personnalisée convertit les données numériques en données de caractère.

Surcharges UDF personnalisées

Paramètres

  1. FLOAT\EXPR : Une expression numérique à convertir en varchar.

  2. FORMAT : Une expression varchar avec la longueur et le nombre de décimales du varchar résultant. Ce format est généré automatiquement dans SnowConvert.

 CREATE OR REPLACE FUNCTION PUBLIC.STR_UDF(FLOAT_EXPR FLOAT, FORMAT VARCHAR)
RETURNS VARCHAR
LANGUAGE SQL
IMMUTABLE
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"udf"}}'
AS
$$
    TRIM(TRIM(SELECT TO_CHAR(FLOAT_EXPR, FORMAT)), '.')
$$;

CREATE OR REPLACE FUNCTION PUBLIC.STR_UDF(FLOAT_EXPR FLOAT)
RETURNS VARCHAR
LANGUAGE SQL
IMMUTABLE
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"udf"}}'
AS
$$
    STR_UDF(FLOAT_EXPR, '999999999999999999')
$$;
Copy
Transact-SQL
 SELECT
    STR(123.5) as A,
    STR(123.5, 2) as B,
    STR(123.45, 6) as C,
    STR(123.45, 6, 1) as D;
Copy

A

B

C

D

124

**

123

123,5

Snowflake
 SELECT
    PUBLIC.STR_UDF(123.5, '99999') as A,
    PUBLIC.STR_UDF(123.5, '99') as B,
    PUBLIC.STR_UDF(123.45, '999999') as C,
    PUBLIC.STR_UDF(123.45, '9999.9') as D;
Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SWITCHOFFSET_UDF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette UDF personnalisée est ajoutée pour renvoyer une valeur datetimeoffset qui passe du décalage de fuseau horaire enregistré à un nouveau décalage de fuseau horaire spécifié.

Surcharges UDF personnalisées

Paramètres

  1. source_timestamp : Un TIMESTAMP\_TZ qui peut être résolu en une valeur datetimeoffset(n).

  2. target_tz : Un varchar qui représente le décalage du fuseau horaire

 CREATE OR REPLACE FUNCTION PUBLIC.SWITCHOFFSET_UDF(source_timestamp TIMESTAMP_TZ, target_tz varchar)
RETURNS TIMESTAMP_TZ
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"udf"}}'
AS 
$$
WITH tz_values AS (
SELECT 
    RIGHT(source_timestamp::varchar, 5) as source_tz,
    
    REPLACE(source_tz::varchar, ':', '') as source_tz_clean,
    REPLACE(target_tz::varchar, ':', '') as target_tz_clean,
    
    target_tz_clean::integer - source_tz_clean::integer as offset,
    
    RIGHT(offset::varchar, 2) as tz_min,
    PUBLIC.OFFSET_FORMATTER(RTRIM(offset::varchar, tz_min)) as tz_hrs,
    
    
    TIMEADD( hours, tz_hrs::integer, source_timestamp ) as adj_hours,
    TIMEADD( minutes, (LEFT(tz_hrs, 1) || tz_min)::integer, adj_hours::timestamp_tz ) as new_timestamp
    
FROM DUAL)
SELECT 
    (LEFT(new_timestamp, 24) || ' ' || target_tz)::timestamp_tz
FROM tz_values
$$;

-- ==========================================================================
-- Description: The function OFFSET_FORMATTER(offset_hrs varchar) serves as
-- an auxiliar function to format the offter hours and its prefix operator.
-- ==========================================================================  
CREATE OR REPLACE FUNCTION PUBLIC.OFFSET_FORMATTER(offset_hrs varchar)
RETURNS varchar
LANGUAGE SQL
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"udf"}}'
AS
$$
CASE
   WHEN LEN(offset_hrs) = 0 THEN '+' || '0' || '0'
   WHEN LEN(offset_hrs) = 1 THEN '+' || '0' || offset_hrs
   WHEN LEN(offset_hrs) = 2 THEN
        CASE 
            WHEN LEFT(offset_hrs, 1) = '-' THEN '-' || '0' || RIGHT(offset_hrs, 1)
            ELSE '+' || offset_hrs
        END
    ELSE offset_hrs
END
$$;
Copy

Transact-SQL

 SELECT 
  '1998-09-20 7:45:50.71345 +02:00' as fr_time,
  SWITCHOFFSET('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;  
Copy
SELECT 
  '1998-09-20 7:45:50.71345 +02:00' as fr_time,
  SWITCHOFFSET('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;  

Copy
Snowflake
 SELECT
  '1998-09-20 7:45:50.71345 +02:00' as fr_time,
  PUBLIC.SWITCHOFFSET_UDF('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;
Copy
fr_time                         cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

Fonctions de métadonnées

DB_NAME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie le nom d’une base de données spécifiée.(DB_NAME dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 DB_NAME ( [ database_id ] )  
Copy

Documentation Snowflake SQL

 CURRENT_DATABASE() /*** SSC-FDM-TS0010 - CURRENT_DATABASE function has different behavior in certain cases ***/
Copy

Exemples

Code :

 SELECT DB_NAME();
Copy

Résultat :

RESULT             |
-------------------+
ADVENTUREWORKS2019 |

Copy

Code :

 SELECT
CURRENT_DATABASE() /*** SSC-FDM-TS0010 - CURRENT_DATABASE function has different behavior in certain cases ***/;
Copy

Résultat :

RESULT             |
-------------------+
ADVENTUREWORKS2019 |

Copy

Problèmes connus

1. La fonction CURRENT_DATABASE a un comportement différent dans certains cas

La fonction DB_NAME peut être invoquée avec le paramètre database_id, qui renvoie le nom de la base de données spécifiée. Sans paramètre, la fonction renvoie le nom de la base de données actuelle. Cependant, SnowFlake ne prend pas en charge ce paramètre et la fonction CURRENT_DATABASE renverra toujours le nom de la base de données actuelle.

EWIs connexes

  1. SSC-FDM-TS0010 : La fonction CURRENT_DATABASE a un comportement différent dans certains cas.

OBJECT_ID

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie le numéro d’identification de l’objet de la base de données d’un objet à portée de schéma.(OBJECT_ID in Transact-SQL).

 OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]   
  object_name' [ ,'object_type' ] )
Copy

Modèles d’échantillons de sources

1. Default transformation

 IF OBJECT_ID_UDF('DATABASE2.DBO.TABLE1') is not null) THEN
            DROP TABLE IF EXISTS TABLE1;
        END IF;
Copy
 BEGIN
-- ** SSC-EWI-0001 - UNRECOGNIZED TOKEN ON LINE '1' COLUMN '0' OF THE SOURCE CODE STARTING AT 'IF'. EXPECTED 'If Statement' GRAMMAR. LAST MATCHING TOKEN WAS 'null' ON LINE '1' COLUMN '48'. FAILED TOKEN WAS ')' ON LINE '1' COLUMN '52'. CODE '70'. **
--IF OBJECT_ID_UDF('DATABASE2.DBO.TABLE1') is not null) THEN
--** SSC-FDM-0007 - MISSING DEPENDENT OBJECT "TABLE1" **
DROP TABLE IF EXISTS TABLE1;
END;
Copy

2. Unknown database

Code :

 IF OBJECT_ID_UDF('DATABASE1.DBO.TABLE1') is not null) THEN
            DROP TABLE IF EXISTS TABLE1;
        END IF;
Copy

Code :

  IF (
 OBJECT_ID_UDF('DATABASE1.DBO.TABLE1') is not null) THEN
     DROP TABLE IF EXISTS TABLE1;
 END IF;
Copy

3. Different object names

Code :

 IF OBJECT_ID_UDF('DATABASE1.DBO.TABLE2') is not null) THEN
            DROP TABLE IF EXISTS TABLE1;
        END IF;
Copy

Code :

  IF (
 OBJECT_ID_UDF('DATABASE1.DBO.TABLE2') is not null) THEN
     DROP TABLE IF EXISTS TABLE1;
 END IF;
Copy

Problèmes connus

1. La fonction OBJECT_ID_UDF a un comportement différent dans certains cas

OBJECT_ID renvoie le numéro d’identification de l’objet mais OBJECT_ID_UDF renvoie une valeur booléenne, de sorte qu’ils ne sont équivalents que lorsque OBJECT_ID est utilisé avec la condition not null.

EWIs connexes

Fonctions analytiques

LAG

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Accède aux données d’une ligne précédente dans le même jeu de résultats sans utiliser d’auto-jointure à partir de SQL Server 2012 (11.x). LAG permet d’accéder à une ligne précédant la ligne actuelle à un décalage physique donné. Utilisez cette fonction analytique dans une instruction SELECT pour comparer les valeurs de la ligne actuelle avec les valeurs d’une ligne précédente.

Modèle de source d’échantillon

Syntaxe

LAG (scalar_expression [,offset] [,default])  
    OVER ( [ partition_by_clause ] order_by_clause )  

Copy

Documentation Snowflake SQL

COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )

Copy

Exemples

Code :

 SELECT TOP 10 
LAG(E.VacationHours,1) OVER(ORDER BY E.NationalIdNumber) as PREVIOUS,
E.VacationHours AS ACTUAL 
FROM HumanResources.Employee E
Copy

Résultat :

PREVIOUS|ACTUAL|
--------+------+
    NULL|    10|
      10|    89|
      89|    10|
      10|    48|
      48|     0|
       0|    95|
      95|    55|
      55|    67|
      67|    84|
      84|    85|

Copy

Code :

 SELECT TOP 10
LAG(E.VacationHours,1) OVER(ORDER BY E.NationalIdNumber) as PREVIOUS,
E.VacationHours AS ACTUAL
FROM
HumanResources.Employee E;
Copy

Résultat :

PREVIOUS|ACTUAL|
--------+------+
    NULL|    10|
      10|    89|
      89|    10|
      10|    48|
      48|     0|
       0|    95|
      95|    55|
      55|    67|
      67|    84|
      84|    85|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

Fonctions des types de données

DATALENGTH

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie le nombre d’octets utilisés pour représenter une expression quelconque. (DATALENGTH dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

DATALENGTH ( expression )   

Copy

Documentation Snowflake SQL

OCTET_LENGTH(<string_or_binary>)

Copy

Exemples

Code :

 SELECT DATALENGTH('SomeString') AS SIZE;
Copy

Résultat :

SIZE|
----+
  10|

Copy

Code :

 SELECT OCTET_LENGTH('SomeString') AS SIZE;
Copy

Résultat :

SIZE|
----+
  10|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

Fonctions mathématiques

ABS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction mathématique qui renvoie la valeur absolue (positive) de l’expression numérique spécifiée. (ABS transforme les valeurs négatives en valeurs positives. ABS n’a aucun effet sur les valeurs nulles ou positives) (ABS dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

ABS( expression )

Copy

Documentation Snowflake SQL

ABS( <num_expr> )

Copy

Documentation complète de JavaScript

Math.abs( expression )

Copy

Exemples

Code :

 SELECT ABS(-5);
Copy

Résultat :

ABS(-5)|
-------+
      5|

Copy

Code :

 SELECT ABS(-5);
Copy

Résultat :

ABS(-5)|
-------+
      5|

Copy

Code :

 CREATE OR REPLACE FUNCTION compute_abs(a float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  return Math.abs(A);
$$
;
SELECT COMPUTE_ABS(-5);
Copy

\ Résultat :

COMPUTE_ABS(-5)|
---------------+
              5|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

AVG

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Note

La section Code des assistants SnowConvert est omise.

Cette fonction renvoie la moyenne des valeurs d’un groupe. Elle ignore les valeurs nulles. (AVG dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

AVG ( [ ALL | DISTINCT ] expression )  
   [ OVER ( [ partition_by_clause ] order_by_clause ) ]

Copy

Documentation Snowflake SQL

AVG( [ DISTINCT ] <expr1> )

AVG( [ DISTINCT ] <expr1> ) OVER (
                                 [ PARTITION BY <expr2> ]
                                 [ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
                                 )

Copy

Exemples

Code :

 SELECT AVG(VACATIONHOURS) AS AVG_VACATIONS FROM HUMANRESOURCES.EMPLOYEE;
Copy

Résultat :

AVG_VACATIONS|
-------------+
           50|

Copy

Code :

 SELECT AVG(VACATIONHOURS) AS AVG_VACATIONS FROM HUMANRESOURCES.EMPLOYEE;
Copy

Résultat :

AVG_VACATIONS|
-------------+
    50.613793|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

CEILING

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Une fonction mathématique qui renvoie le plus petit entier supérieur/égal au nombre envoyé en paramètre (CEILING dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

CEILING( expression )

Copy
CEIL( <input_expr> [, <scale_expr> ] )

Copy
 Math.ceil( expression )
Copy

Exemples

Code :

SELECT CEILING(642.20);
Copy

\ Résultat :

CEILING(642.20)|
---------------+
643            |

Copy

Code :

 SELECT CEIL(642.20);
Copy

\ Résultat :

CEIL(642.20)|
------------+
643         |

Copy

Code :

 CREATE OR REPLACE FUNCTION compute_ceil(a double)
  RETURNS double
  LANGUAGE JAVASCRIPT
AS
$$
  return Math.ceil(A);
$$
;
SELECT COMPUTE_CEIL(642.20);
Copy

\ Résultat :

COMPUTE_CEIL(642.20)|
--------------------+
                 643|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

FLOOR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie le plus grand entier inférieur ou égal à l’expression numérique spécifiée. (FLOOR dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

FLOOR ( numeric_expression )  

Copy

Documentation Snowflake SQL

FLOOR( <input_expr> [, <scale_expr> ] )

Copy

Exemples

Code :

 SELECT FLOOR (124.87) AS FLOOR;
Copy

Résultat :

FLOOR|
-----+
  124|

Copy

Code :

 SELECT FLOOR (124.87) AS FLOOR;
Copy

Résultat :

FLOOR|
-----+
  124|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

POWER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la valeur de l’expression spécifiée à la puissance spécifiée. (POWER dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

POWER ( float_expression , y )  

Copy

Documentation Snowflake SQL

POW(x, y)

POWER (x, y)

Copy

Exemples

Code :

 SELECT POWER(2, 10.0) AS IntegerResult
Copy

Résultat :

IntegerResult |
--------------+
          1024|

Copy

Code :

 SELECT POWER(2, 10.0) AS IntegerResult;
Copy

Résultat :

IntegerResult |
--------------+
          1024|

Copy

Documentation Connexe

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ROUND

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une valeur numérique, arrondie à la longueur ou à la précision spécifiée. (ROUND dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

ROUND ( numeric_expression , length [ ,function ] )  

Copy

Documentation Snowflake SQL

ROUND( <input_expr> [, <scale_expr> ] )

Copy

Exemples

Code :

 SELECT ROUND(123.9994, 3) AS COL1, ROUND(123.9995, 3) AS COL2;  
Copy

Résultat :

COL1    |COL2    |
--------+--------+
123.9990|124.0000|

Copy

Code :

 SELECT ROUND(123.9994, 3) AS COL1,
ROUND(123.9995, 3) AS COL2;
Copy

Résultat :

COL1   | COL2  |
--------+------+
123.999|124.000|

Copy

Documentation Connexe

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SQRT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la racine carrée de la valeur flottante spécifiée. (SQRT dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

SQRT ( float_expression )  

Copy

Documentation Snowflake SQL

SQRT(expr)

Copy

Exemples

Code :

 SELECT SQRT(25) AS RESULT;
Copy

Résultat :

RESULT|
------+
   5.0|

Copy

Code :

 SELECT SQRT(25) AS RESULT;
Copy

Résultat :

RESULT|
------+
   5.0|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SQUARE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie le carré de la valeur flottante spécifiée. (SQUARE dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

SQUARE ( float_expression )  

Copy

Documentation Snowflake SQL

SQUARE(expr)

Copy

Exemples

Code :

 SELECT SQUARE (5) AS SQUARE;
Copy

Résultat :

SQUARE|
------+
  25.0|

Copy

Code :

 SELECT SQUARE (5) AS SQUARE;
Copy

Résultat :

SQUARE|
------+
    25|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

STDEV

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Renvoie l’écart-type statistique de toutes les valeurs de l’expression spécifiée. (STDEV dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 STDEV ( [ ALL | DISTINCT ] expression )  
Copy

Documentation Snowflake SQL

 STDDEV( [ DISTINCT ] <expression_1> )
Copy

Exemples

Code :

 SELECT
    STDEV(VACATIONHOURS)
FROM
    HUMANRESOURCES.EMPLOYEE AS STDEV;
Copy

Résultat :

           STDEV|
----------------+
28.7862150320948|

Copy

Code :

 SELECT
    STDDEV(VACATIONHOURS)
FROM
    HUMANRESOURCES.EMPLOYEE AS STDEV;
Copy

Résultat :

       STDEV|
------------+
28.786215034|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

STDEVP

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Renvoie l’écart-type statistique de la population pour toutes les valeurs de l’expression spécifiée. (STDVEP dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

STDEVP ( [ ALL | DISTINCT ] expression )  

Copy

Documentation Snowflake SQL

STDDEV_POP( [ DISTINCT ] expression_1)

Copy

Exemples

Code :

 SELECT
    STDEVP(VACATIONHOURS) AS STDEVP_VACATIONHOURS
FROM
    HumanResources.Employee;
Copy

Résultat :

STDEVP_VACATIONHOURS|
--------------------+
  28.736540767245085|

Copy

Code :

 SELECT
    STDDEV_POP(VACATIONHOURS) AS STDEVP_VACATIONHOURS
FROM
    HumanResources.Employee;
Copy

Résultat :

STDEVP_VACATIONHOURS|
--------------------+
        28.736540763|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

VAR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Note

Certaines parties du code de sortie sont omises pour des raisons de clarté.

Description

Renvoie la variance statistique de toutes les valeurs de l’expression spécifiée. (VAR dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

VAR ( [ ALL | DISTINCT ] expression )  

Copy
VAR_SAMP( [DISTINCT] <expr1> )

Copy

Exemples

Code :

 SELECT
    VAR(VACATIONHOURS)
FROM
    HUMANRESOURCES.EMPLOYEE AS VAR;
Copy

Résultat :

             VAR|
----------------+
28.7862150320948|

Copy

Code :

 SELECT
    VAR_SAMP(VACATIONHOURS)
FROM
    HUMANRESOURCES.EMPLOYEE AS VAR;
Copy

Résultat :

       VAR|
----------+
828.646176|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

POWER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la valeur de l’expression spécifiée pour une puissance donnée.\ (POWER dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 POWER( base, exp )
Copy
Arguments

base : Base d’un nombre, il doit s’agir d’une expression flottante.\ exp : Puissance à laquelle on élève la base.

Type de renvoi

Le type de retour dépend de l’expression d’entrée :

Input TypeReturn Type
float, realfloat
decimal(p, s)decimal(38, s)
int, smallint, tinyintint
bigintbigint
money, smallmoneymoney
bit, char, nchar, varchar, nvarcharfloat

Exemples

 SELECT POWER(2, 3)
Copy
POWER(2, 3)|
-----------+
        8.0|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

POW dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la base de la puissance de l’exposant.\ (documentation sur la fonction JavaScript POW).

Modèle de source d’échantillon

Syntaxe

 Math.pow( base, exp )
Copy
Arguments

base : Base d’un nombre, il doit s’agir d’une expression flottante.\ exp : Puissance à laquelle on élève la base.

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique.

Exemples

 CREATE OR REPLACE FUNCTION compute_pow(base float, exp float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
    return Math.pow(BASE, EXP);
$$
;
SELECT COMPUTE_POW(2, 3);
Copy
COMPUTE_POW(2, 3)|
-----------------+
                8|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ACOS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction qui renvoie l’arc cosinus en radians du nombre envoyé en paramètre (ACOS dans Transact-SQL).

Mathématiquement, l’arc cosinus est la fonction inverse du cosinus, ce qui donne la définition suivante :\ $$y = cos^{-1} \Leftrightarrow x = cos(y)$$

For $$y = cos^{-1}(x)$$:
- Range: $$0\leqslant y \leqslant \pi$$ or $$0^{\circ}\leqslant y \leqslant 180^{\circ}$$
- Domain: $$-1\leqslant x \leqslant 1$$

Modèle de source d’échantillon

Syntaxe

 ACOS ( expression )
Copy
Arguments

expression : Expression numérique float, où l’expression est dans$[-1,1]$$.

Type de renvoi

Expression numérique flottante comprise entre 0 et π. Si l’expression numérique envoyée par le paramètre est en dehors du domaine $$[-1, 1]$$, le moteur de la base de données émet une erreur.

Exemples

 SELECT ACOS(-1.0);
Copy
ACOS(-1.0)       |
-----------------+
3.141592653589793|


Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ACOS dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction qui renvoie l’arc cosinus d’un nombre spécifié\ (documentation sur la fonction JavaScript ACOS).

Modèle de source d’échantillon

Syntaxe

 Math.acos( expression )
Copy
Arguments

expression : Expression numérique, où l’expression est dans$$[-1,1]$$.

Type de renvoi

Expression numérique comprise entre 0 et π. Si l’expression numérique envoyée par le paramètre est hors de l’intervalle de l’arc cosinus en radians $$[-1, 1]$$, la fonction renvoie NaN.

Exemples

 CREATE OR REPLACE FUNCTION compute_acos(a double)
  RETURNS double
  LANGUAGE JAVASCRIPT
AS
$$
  return Math.acos(A);
$$
;
SELECT COMPUTE_ACOS(-1);
Copy
COMPUTE_ACOS(-1)|
---------------+
    3.141592654|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ASIN

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction qui renvoie l’arc sinus en radians du nombre envoyé en paramètre (ASIN dans Transact-SQL).

L’arc sinus est la fonction inverse du sinus, résumée dans la définition suivante :\ $$y = sin^{-1} \Leftrightarrow x = sin(x)$$

For $$y = sin^{-1}(x)$$:
- Range: $$-\frac{\pi}{2}\leqslant y \leqslant \frac{\pi}{2}$$ or $$-90^{\circ}\leqslant y \leqslant 90^{\circ}$$
- Domain: $$-1\leqslant x \leqslant 1$$

Modèle de source d’échantillon

Syntaxe

 ASIN( expression )
Copy
Arguments

expression : Expression numérique float, où l’expression est dans$[-1,1]$$.

Type de renvoi

Expression numérique flottante entre $$-\frac{\pi}{2}$$ et $$\frac{\pi}{2}$$. Si l’expression numérique envoyée par le paramètre n’est pas comprise dans $$[-1, 1]$$, le moteur de la base de données émet une erreur.

Exemples

 SELECT ASIN(0.5);
Copy
ASIN(0.5)         |
------------------+
0.5235987755982989|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ASIN dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction qui renvoie l’arc sinus d’un nombre spécifié\ (documentation sur la fonction JavaScript ASIN).

Modèle de source d’échantillon

Syntaxe

 Math.asin( expression )
Copy
Arguments

expression : Expression numérique, où l’expression est dans$$[-1,1]$$.

Type de renvoi

Expression numérique entre $$-\frac{\pi}{2}$$ et $$\frac{\pi}{2}$$. Si l’expression numérique envoyée en paramètre est hors du domaine de l’arc cosinus $$[-1, 1]$$, la fonction renvoie NaN.

Exemples

 CREATE OR REPLACE FUNCTION compute_asin(a float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  return Math.asin(A);
$$
;
SELECT COMPUTE_ASIN(0.5);
Copy
COMPUTE_ASIN(1)   |
------------------+
      0.5235987756|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

COS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction qui renvoie le cosinus de l’angle envoyé par les paramètres (doit être mesuré en radians) (COS dans Transact-SQL).

Le cosinus est défini comme suit : \ $$y = cos(x)$$\ Where:\ - Range: $$-1\leqslant y \leqslant 1$$\ - Domain: $$\mathbb{R}$$

Modèle de source d’échantillon

Syntaxe

 COS( expression )
Copy
Arguments

expression : Expression numérique float, où l’expression est dans $$\mathbb{R}$$.

Type de renvoi

Expression numérique flottante dans $$[-1, 1]$$.

Exemples

 SELECT COS(PI())
Copy
COS(PI())|
---------+
     -1.0|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

COS dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction statique qui renvoie le cosinus d’un angle en radians\ (documentation sur la fonction JavaScript COS).

Modèle de source d’échantillon

Syntaxe

 Math.cos( expression )
Copy
Arguments

expression : Expressions numériques.

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique.

Exemples

 CREATE OR REPLACE FUNCTION compute_cos(angle float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  return Math.cos(ANGLE); 
$$
;
SELECT COMPUTE_COS(PI());
Copy
COMPUTE_COS(PI())|
-----------------+
               -1|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

COT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la cotangente de l’angle en radians envoyé par les paramètres (COT dans Transact-SQL).

Le cosinus est défini comme suit : \ $$cot(x) = \frac{cos(x)}{sin(x)}$$ or $$cot(x) = \frac{1}{tan(x)}$$\ Pour calculer le cosinus, le paramètre doit respecter les contraintes des fonctions sinus et cosinus.

Modèle de source d’échantillon

Syntaxe

 COT( expression )
Copy
Arguments

expression : Expression numérique float, où l’expression est dans $$\mathbb{R}-{sin(expression)=0 \wedge tan(expression) =0}$$.

Type de renvoi

Expression numérique flottante dans $$\mathbb{R}$$.

Exemples

 SELECT COT(1)
Copy
COT(1)            |
------------------+
0.6420926159343306|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

COT dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Malheureusement, l’objet Mathdans JavaScript ne fournit pas de méthode pour calculer la cotangente d’un angle donné.\ Cette cotangente pourrait être calculée à l’aide de l’équation : $$cot(x) = \frac{cos(x)}{sin(x)}$$

Modèle de source d’échantillon

Exemple de mise en œuvre

 function cot(angle){
    return Math.cos(angle)/Math.sin(angle);
}
Copy
Arguments

angle : Expression numérique en radians.

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique.

Exemples

 CREATE OR REPLACE FUNCTION compute_cot(angle float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  function cot(angle){
    return Math.cos(angle)/Math.sin(angle);
  }
  return cot(ANGLE);
    
$$
;
SELECT COMPUTE_COT(1);
Copy
COMPUTE_COT(1);   |
------------------+
0.6420926159343308|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

RADIANS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Convertit les degrés en radians.\ (RADIANS dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 RADIANS( expression )
Copy
Arguments

expression : Expression numérique en degrés.

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique en radians.

Exemples

 SELECT RADIANS(180.0)
Copy
RADIANS(180)        |
--------------------+
3.141592653589793116|

Copy

Note

Transformez le paramètre de cette fonction en valeur flottante, sinon l’instruction ci-dessus renverra 3 au lieu de la valeur PI.

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

RADIANS dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

JavaScript ne fournit pas de méthode pour convertir les degrés en radians d’un angle donné.\ Cette conversion peut être calculée à l’aide de l’équation suivante : $$Radians = \frac{\pi}{180^{\circ}} \cdot angle$$

Modèle de source d’échantillon

Exemple de mise en œuvre

 function radians(angle){
    return (Math.PI/180) * angle;
}
Copy
Arguments

angle : Expression flottante en degrés.

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique en radians.

Exemples

 CREATE OR REPLACE FUNCTION RADIANS(angle float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
    function radians(angle){
      return (Math.PI/180) * angle;
    }
    return radians(ANGLE);
$$
;
SELECT RADIANS(180);
Copy
RADIANS(180)     |
-----------------+
      3.141592654|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

PI

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la valeur constante de PI\ (PI dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 PI( )
Copy
Arguments

Cette méthode ne reçoit aucun paramètre.

Type de renvoi

Float.

Exemples

 CREATE PROCEDURE CIRCUMFERENCE @radius float
AS 
     SELECT 2 * PI() * @radius;
GO:

EXEC CIRCUMFERENCE @radius = 2;
Copy
CIRCUMFERENCE @radius = 2 |
--------------------------+
          12.5663706143592|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

PI dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Constante qui représente le nombre PI (environ 3,141592…)\ (documentation sur JavaScript PI).

Modèle de source d’échantillon

Syntaxe

 Math.PI
Copy

Exemples

 CREATE OR REPLACE FUNCTION circumference(radius float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  function circumference(r){
    return 2 * Math.PI * r;
  }
  return circumference(RADIUS); 
$$
;
SELECT CIRCUMFERENCE(2);
Copy
  CIRCUMFERENCE(2)|
------------------+
12.566370614359172|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

DEGREES

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Convertit l’angle en radians envoyé par les paramètres en degrés (DEGREES dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 DEGREES( expression )
Copy
Arguments

expression : Expression numérique float en radians.

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique.

Exemples

 SELECT DEGREES(PI())
Copy
DEGREES(PI())|
-------------+
        180.0|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

DEGREES dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

JavaScript ne fournit pas de méthode pour convertir les radians en degrés d’un angle donné.\ Cette conversion peut être calculée à l’aide de l’équation suivante : $$Degrees = \frac{180^{\circ}}{\pi} \cdot angle$$

Modèle de source d’échantillon

Exemple de mise en œuvre

 function degress(angle){
    return (180/Math.PI) * angle;
}
Copy
Arguments

angle : Expression numérique en radians.

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique.

Exemples

 CREATE OR REPLACE FUNCTION compute_degrees(angle float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  function degrees(angle){
    return (180/Math.PI) * angle;
  }
  return degrees(ANGLE);
    
$$
;
SELECT COMPUTE_DEGREES(PI());
Copy
COMPUTE_DEGREES(PI())|
---------------------+
                180.0|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

LOG

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie le logarithme naturel d’un nombre\ (LOG dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 LOG( expression [, base ] )
Copy
Arguments

expression : Expression numérique.

base (facultatif) : Base pour calculer le logarithme d’un nombre ; Euler par défaut.

Type de renvoi

Float.

Exemples

 SELECT LOG(8, 2)
Copy
LOG(8, 2)  |
-----------+
          3|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

LOG dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie le logarithme en utilisant le nombre d’Euler comme base. (documentation sur la fonction JavaScript LOG).

Avertissement

Malheureusement, JavaScript ne fournit pas de méthode qui reçoive une base de logarithme à travers ses paramètres, mais cela peut être résolu en divisant la base par l’argument.

Modèle de source d’échantillon

Syntaxe

 Math.log( expression )
Copy
Arguments

expression : Expression numérique. Il doit être positif, sinon il renvoie NaN. \

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique.

Exemples

 CREATE OR REPLACE FUNCTION base_log(base float, exp float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  function getBaseLog(x, y){
    return Math.log(y)/Math.log(x);
  }
  return getBaseLog(EXP, BASE)
$$
;
SELECT BASE_LOG(2, 8);
Copy
BASE_LOG(2, 8)|
--------------+
             3|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ATAN

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction qui renvoie l’arc tangente en radians du nombre envoyé en paramètre (ATAN dans Transact-SQL).

L’arc tangente est la fonction inverse de la tangente, résumée dans la définition suivante:\ $$y = arctan^{-1} \Leftrightarrow x = tan(x)$$

For $$y = tan^{-1}(x)$$:
- Range: $$-\frac{\pi}{2}\leqslant y \leqslant \frac{\pi}{2}$$ or $$-90^{\circ}\leqslant y \leqslant 90^{\circ}$$
- Domain: $$\mathbb{R}$$

Modèle de source d’échantillon

Syntaxe

 ATAN( expression )
Copy
Arguments

expression : Expression numérique float, ou un type numérique qui pourrait être converti en float.

Type de renvoi

Expression numérique flottante entre $$-\frac{\pi}{2}$$ et $$\frac{\pi}{2}$$.

Exemples

 SELECT ATAN(-30);
Copy
ATAN(-30)          |
-------------------+
-1.5374753309166493|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ATAN dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction qui renvoie l’arc tangente d’un nombre spécifié\ (documentation sur la fonction JavaScript ATAN).

Modèle de source d’échantillon

Syntaxe

 Math.atan( expression )
Copy
Arguments

expression : Expression numérique.

Type de renvoi

Expression numérique entre $$-\frac{\pi}{2}$$ et $$\frac{\pi}{2}$$.

Exemples

 CREATE OR REPLACE FUNCTION compute_atan(a float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  return Math.atan(A);
$$
;
SELECT COMPUTE_ATAN(-30);
Copy
COMPUTE_ATAN(-30)|
-----------------+
     -1.537475331|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ATN2

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction qui renvoie l’arc tangente en radians de deux coordonnées envoyées en paramètre (ATN2 dans Transact-SQL).

For $$z = tan^{-1}(x, y)$$:
- Range: $$-\pi\leqslant z \leqslant \pi$$ or $$-180^{\circ}\leqslant z \leqslant 180^{\circ}$$
- Domain: $$\mathbb{R}$$

Modèle de source d’échantillon

Syntaxe

 ATN2( expression_1, expression_2 )
Copy
Arguments

expression1et expression2 : Expressions numériques.

Type de renvoi

Expression numérique comprise entre $$-\pi$$ et $$\pi$$.

Exemples

 SELECT ATN2(7.5, 2);
Copy
ATN2(7.5, 2)      |
------------------+
1.3101939350475555|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

ATAN2 dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Fonction qui renvoie l’arc tangente de deux paramètres\ (documentation sur la fonction JavaScript ATAN2).

Modèle de source d’échantillon

Syntaxe

 Math.atan2( expression_1, expression_2 )
Copy
Arguments

expression_1et expression_2 : Expressions numériques.

Type de renvoi

Expression numérique comprise entre $$-\pi$$ et $$\pi$$.

Exemples

 CREATE OR REPLACE FUNCTION compute_atan2(x float, y float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  return Math.atan2(X, Y);
$$
;
SELECT COMPUTE_ATAN2(7.5, 2);
Copy
ATAN2(7.5, 3)     |
------------------+
       1.310193935|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

LOG10

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie le logarithme en base 10 d’un nombre\ (LOG10 dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 LOG10( expression )
Copy
Arguments

expression : Expression numérique, doit être positive.

Type de renvoi

Float.

Exemples

 SELECT LOG10(5)
Copy
LOG10(5)         |
-----------------+
0.698970004336019|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

LOG10 dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie le logarithme en base 10 d’un nombre\ (documentation sur la fonction JavaScript LOG10).

Modèle de source d’échantillon

Syntaxe

 Math.log10( expression )
Copy
Arguments

expression : Expression numérique. Il doit être positif, sinon il renvoie NaN. \

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique.

Exemples

 CREATE OR REPLACE FUNCTION compute_log10(argument float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
    return Math.log10(ARGUMENT);
$$
;
SELECT COMPUTE_LOG10(7.5);
Copy
COMPUTE_LOG10(5)|
----------------+
    0.6989700043|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

EXP

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie la valeur de l’exponentielle d’Euler (EXP dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

 EXP( expression )
Copy
Arguments

expression : Expression numérique.

Type de renvoi

Le même type de données est envoyé par le paramètre sous la forme d’une expression numérique.

Exemples

 SELECT EXP(LOG(20)), LOG(EXP(20))  
GO 
Copy
EXP(LOG(20))   |LOG(EXP(20))    |
---------------+----------------+
           20.0|            20.0|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

EXP dans JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Constante qui représente le nombre d’Euler (environ 2,718…)\ (JavaScript, documentation sur le nombre d’Euler). \ JavaScript permet d’effectuer différentes opérations en utilisant cette constante, au lieu de Transact-SQL qui ne prend en charge que l’exponentielle d’Euler.

Modèle de source d’échantillon

Syntaxe

 Math.E
Copy

Exemples

 CREATE OR REPLACE FUNCTION compute_exp(x float)
  RETURNS float
  LANGUAGE JAVASCRIPT
AS
$$
  return Math.E**X;
$$
;
SELECT COMPUTE_EXP(LN(20)), LN(COMPUTE_EXP(20));
Copy
COMPUTE_EXP(LOG(20))|LOG(COMPUTE_EXP(20))|
--------------------+--------------------+
                20.0|                20.0|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

Fonctions de conversion

CONVERT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Convertir une expression d’un type de données vers un autre. (CONVERT dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )  

Copy

Documentation Snowflake SQL

CAST( <source_expr> AS <target_data_type> )

Copy

Exemples

 SELECT CONVERT(INT, '1998') as MyDate
Copy
MyDate |
-------+
1998   |

Copy
 SELECT
CAST('1998' AS INT) as MyDate;
Copy
MYDATE |
-------+
1998   |

Copy

Conversion du type date en varchar

 SELECT CONVERT(varchar, getdate(), 1) AS RESULT;
Copy
RESULT   |
---------+
12/08/22 |

Copy
 SELECT
TO_VARCHAR(CURRENT_TIMESTAMP() :: TIMESTAMP, 'mm/dd/yy') AS RESULT;
Copy
RESULT   |
---------+
12/08/22 |

Copy
Conversion du type date en varchar avec taille
 SELECT CONVERT(varchar(2), getdate(), 1) AS RESULT;
Copy
RESULT   |
---------+
07       |

Copy
 SELECT
LEFT(TO_VARCHAR(CURRENT_TIMESTAMP() :: TIMESTAMP, 'mm/dd/yy'), 2) AS RESULT;
Copy
RESULT   |
---------+
07       |

Copy

Les formats pris en charge pour les enregistrements de dates sont les suivants :

Formats de date

Code

Format

1

mm/dd/yy

2

yy.mm.dd

3

dd/mm/yy

4

dd.mm.yy

5

dd-mm-yy

6

dd-Mon-yy

7

Mon dd, yy

10

mm-dd-yy

11

yy/mm/dd

12

yymmdd

23

yyyy-mm-dd

101

mm/dd/yyyy

102

yyyy.mm.dd

103

dd/mm/yyyy

104

dd.mm.yyyy

105

dd-mm-yyyy

106

dd Mon yyyy

107

Mon dd, yyyy

110

mm-dd-yyyy

111

yyyy/mm/dd

112

yyyymmdd

Formats d’heure

Code

Format

8

hh:mm:ss

14

hh:mm:ss:ff3

24

hh:mm:ss

108

hh:mm:ss

114

hh:mm:ss:ff3

Date and time formats

0

Mon dd yyyy hh:mm AM/PM

9

Mon dd yyyy hh:mm:ss:ff3 AM/PM

13

dd Mon yyyy hh:mm:ss:ff3 AM/PM

20

yyyy-mm-dd hh:mm:ss

21

yyyy-mm-dd hh:mm:ss:ff3

22

mm/dd/yy hh:mm:ss AM/PM

25

yyyy-mm-dd hh:mm:ss:ff3

100

Mon dd yyyy hh:mm AM/PM

109

Mon dd yyyy hh:mm:ss:ff3 AM/PM

113

dd Mon yyyy hh:mm:ss:ff3

120

yyyy-mm-dd hh:mm:ss

121

yyyy-mm-dd hh:mm:ss:ff3

126

yyyy-mm-dd T hh:mm:ss:ff3

127

yyyy-mm-dd T hh:mm:ss:ff3

Dates du calendrier islamique

Code

Format

130

dd mmm yyyy hh:mi:ss:ff3 AM/PM

131

dd mmm yyyy hh:mi:ss:ff3 AM/PM

Si aucun modèle ne correspond au code actuel, il sera formaté en yyyy-mm-dd hh:mm:ss

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

TRY_CONVERT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une valeur convertie dans le type de données spécifié si la conversion est réussie ; sinon, renvoie null.

(Référence linguistique SQL Server TRY_CONVERT)

Syntaxe

 TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] )  
Copy

Modèles de sources

Transformation de base

Afin de transformer cette fonction, nous devons d’abord vérifier les paramètres de TRY_CONVERT.

 TRY_CONVERT( INT, 'test')
Copy

Si l’expression à convertir est une chaîne, elle sera transformée en TRY_CAST, qui est une fonction de Snowflake.

 TRY_CAST( 'test' AS INT)
Copy

TRY_CAST

TRY_CAST partage la même transformation avec TRY_CONVERT.

Exemple
SQL Server
 SELECT TRY_CAST('12345' AS NUMERIC) NUMERIC_RESULT,
 TRY_CAST('123.45' AS DECIMAL(20,2)) DECIMAL_RESULT,
 TRY_CAST('123' AS INT) INT_RESULT,
 TRY_CAST('123.02' AS FLOAT) FLOAT_RESULT,
 TRY_CAST('123.02' AS DOUBLE PRECISION) DOUBLE_PRECISION_RESULT,

 TRY_CAST('2017-01-01 12:00:00' AS DATE) DATE_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS DATETIME) DATETIME_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS SMALLDATETIME) SMALLDATETIME_RESULT,
 TRY_CAST('12:00:00' AS TIME) TIME_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS TIMESTAMP) TIMESTAMP_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS DATETIMEOFFSET) DATETIMEOFFSET_RESULT,

 TRY_CAST(1234 AS VARCHAR) VARCHAR_RESULT,
 TRY_CAST(1 AS CHAR) CHAR_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS SQL_VARIANT) SQL_VARIANT_RESULT,
 TRY_CAST('LINESTRING(-122.360 47.656, -122.343 47.656 )' AS GEOGRAPHY) GEOGRAPHY_RESULT;
Copy

Le résultat sera le même avec l’exemple TRY_CONVERT.

Snowflake
 SELECT
 TRY_CAST('12345' AS NUMERIC(38, 18)) NUMERIC_RESULT,
 TRY_CAST('123.45' AS DECIMAL(20,2)) DECIMAL_RESULT,
 TRY_CAST('123' AS INT) INT_RESULT,
 TRY_CAST('123.02' AS FLOAT) FLOAT_RESULT,
 TRY_CAST('123.02' AS DOUBLE PRECISION) DOUBLE_PRECISION_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS DATE) DATE_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS TIMESTAMP_NTZ(3)) DATETIME_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS TIMESTAMP_NTZ(0)) SMALLDATETIME_RESULT,
 TRY_CAST('12:00:00' AS TIME(7)) TIME_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS TIMESTAMP) TIMESTAMP_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS TIMESTAMP_TZ(7)) DATETIMEOFFSET_RESULT,
 TO_VARCHAR(1234) VARCHAR_RESULT,
 TO_CHAR(1) CHAR_RESULT,
 TRY_CAST('2017-01-01 12:00:00' AS VARIANT) SQL_VARIANT_RESULT,
 TRY_CAST('LINESTRING(-122.360 47.656, -122.343 47.656 )' AS GEOGRAPHY) GEOGRAPHY_RESULT;
Copy

Problèmes connus

Si le type de données est Varchar ou Char, il sera transformé différemment.

 TRY_CONVERT(VARCHAR, 1234);
TRY_CONVERT(CHAR, 1);
Copy

Si TRY_CAST est utilisé avec VARCHAR ou CHAR dans Snowflake, cela provoquera une erreur, il sera donc transformé en

 TO_VARCHAR(1234);
TO_CHAR(1);
Copy

Il en va de même pour les types de données SQL_VARIANT et GEOGRAPHY.

 TRY_CONVERT(SQL_VARIANT, '2017-01-01 12:00:00');
TRY_CONVERT(GEOGRAPHY, 'LINESTRING(-122.360 47.656, -122.343 47.656 )');
Copy

Transformés en

 TO_VARIANT('2017-01-01 12:00:00');
TO_GEOGRAPHY('LINESTRING(-122.360 47.656, -122.343 47.656 )');
Copy

Si l’expression n’est pas une chaîne, il y a de très fortes chances qu’elle échoue, car TRY_CAST de Snowflake ne fonctionne qu’avec des expressions de type chaîne.

Dans ce cas, une autre transformation sera effectuée

 TRY_CAST(14.85 AS INT)
Copy

Sera transformé en

 CAST(14.85 AS INT) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/
Copy

Maintenant, avec ces fonctionnalités, il peut y avoir des problèmes qui dépendent de ce qui est fait avec les fonctions. TRY\CONVERT de SqlServer renvoie des valeurs nulles si la conversion n’a pas été possible.

Ce comportement peut être utilisé pour appliquer la logique suivante

 SELECT 
    CASE
        WHEN TRY_CONVERT( INT, 'Expression') IS NULL
        THEN 'FAILED'
        ELSE 'SUCCEDDED'
    END;
Copy

Ce type de conditions avec TRY_CONVERT peut être utilisé avec TRY_CAST, mais que se passe-t-il s’il est transformé en TO_VARCHAR, TOCHAR ou en CAST ? Si la conversion dans ces fonctions échoue, elle provoquera une erreur au lieu de renvoyer simplement null.

Exemples

Dans cet échantillon, nous avons plusieurs TRY_CONVERT avec différents types de données

SQL Server
 SELECT TRY_CONVERT(NUMERIC, '12345') NUMERIC_RESULT,
 TRY_CONVERT(DECIMAL(20,2), '123.45') DECIMAL_RESULT,
 TRY_CONVERT(INT, '123') INT_RESULT,
 TRY_CONVERT(FLOAT, '123.02') FLOAT_RESULT,
 TRY_CONVERT(DOUBLE PRECISION, '123.02') DOUBLE_PRECISION_RESULT,

 TRY_CONVERT(DATE, '2017-01-01 12:00:00') DATE_RESULT,
 TRY_CONVERT(DATETIME, '2017-01-01 12:00:00') DATETIME_RESULT,
 TRY_CONVERT(SMALLDATETIME, '2017-01-01 12:00:00') SMALLDATETIME_RESULT,
 TRY_CONVERT(TIME, '12:00:00') TIME_RESULT,
 TRY_CONVERT(TIMESTAMP, '2017-01-01 12:00:00') TIMESTAMP_RESULT,
 TRY_CONVERT(DATETIMEOFFSET, '2017-01-01 12:00:00') DATETIMEOFFSET_RESULT,

 TRY_CONVERT(VARCHAR, 1234) VARCHAR_RESULT,
 TRY_CONVERT(CHAR, 1) CHAR_RESULT,
 TRY_CONVERT(SQL_VARIANT, '2017-01-01 12:00:00') SQL_VARIANT_RESULT,
 TRY_CONVERT(GEOGRAPHY, 'LINESTRING(-122.360 47.656, -122.343 47.656 )') GEOGRAPHY_RESULT;
Copy

Si nous migrons cette sélection, nous obtiendrons le résultat suivant

Snowflake
 SELECT
 CAST('12345' AS NUMERIC(38, 18)) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ NUMERIC_RESULT,
 CAST('123.45' AS DECIMAL(20,2)) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ DECIMAL_RESULT,
 CAST('123' AS INT) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ INT_RESULT,
 CAST('123.02' AS FLOAT) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ FLOAT_RESULT,
 CAST('123.02' AS DOUBLE PRECISION) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ DOUBLE_PRECISION_RESULT,
 CAST('2017-01-01 12:00:00' AS DATE) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ DATE_RESULT,
 CAST('2017-01-01 12:00:00' AS TIMESTAMP_NTZ(3)) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ DATETIME_RESULT,
 CAST('2017-01-01 12:00:00' AS TIMESTAMP_NTZ(0)) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ SMALLDATETIME_RESULT,
 CAST('12:00:00' AS TIME(7)) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ TIME_RESULT,
 CAST('2017-01-01 12:00:00' AS TIMESTAMP) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ TIMESTAMP_RESULT,
 CAST('2017-01-01 12:00:00' AS TIMESTAMP_TZ(7)) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/ DATETIMEOFFSET_RESULT,
 TO_VARCHAR(1234) VARCHAR_RESULT,
 TO_CHAR(1) CHAR_RESULT,
 TO_VARIANT('2017-01-01 12:00:00') SQL_VARIANT_RESULT,
 TO_GEOGRAPHY('LINESTRING(-122.360 47.656, -122.343 47.656 )') GEOGRAPHY_RESULT;
Copy

Exécutons chacune d’entre elles et comparons les résultats.

Alias

Résultat de SqlServer

Résultat de Snowflake

NUMERIC_RESULT

12345

12345

DECIMAL_RESULT

123,45

123,45

INT_RESULT

123

123

FLOAT_RESULT

123,02

123,02

DOUBLE_PRECISION_RESULT

123,02

123,02

DATE_RESULT

2017-01-01

2017-01-01

DATETIME_RESULT

2017-01-01 12:00:00.000

2017-01-01 12:00:00.000

SMALLDATETIME_RESULT

2017-01-01 12:00:00

2017-01-01 12:00:00.000

TIME_RESULT

12:00:00.0000000

12:00:00

TIMESTAMP_RESULT

0x323031372D30312D

2017-01-01 12:00:00.000

DATETIMEOFFSET_RESULT

2017-01-01 12:00:00.0000000 +00:00

2017-01-01 12:00:00.000 -0800

VARCHAR_RESULT

1234

1234

CHAR_RESULT

1

1

SQL_VARIANT_RESULT

2017-01-01 12:00:00

« 2017-01-01 12:00:00 »

GEOGRAPHY_RESULT

0xE610000001148716D9CEF7D34740D7A3703D0A975EC08716D9CEF7D34740CBA145B6F3955EC0

{ « coordinates »: [ [ -122.36, 47.656 ], [ -122.343, 47.656 ] ], « type »: « LineString » }

EWIs connexes

  1. SSC-FDM-TS0005 : TRY_CONVERT/TRY_CAST n’a pas pu être converti en TRY_CAST.

Fonctions de date et d’heure

AT TIME ZONE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Convertit inputdate dans la valeur datetimeoffset correspondante dans le fuseau horaire cible. (AT TIME ZONE dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

inputdate AT TIME ZONE timezone

Copy

Documentation Snowflake SQL

CONVERT_TIMEZONE( <source_tz> , <target_tz> , <source_timestamp_ntz> )

CONVERT_TIMEZONE( <target_tz> , <source_timestamp> )

Copy

Exemples

 SELECT CAST('2022-11-24 11:00:45.2000000 +00:00' as datetimeoffset) at time zone 'Alaskan Standard Time';
Copy

Résultat :

                          DATE|
------------------------------+
2022-11-24 02:00:45.200 -09:00|

Copy
 SELECT
CONVERT_TIMEZONE('America/Anchorage', CAST('2022-11-24 11:00:45.2000000 +00:00' as TIMESTAMP_TZ(7)));
Copy

Résultat :

                          DATE|
------------------------------+
2022-11-24 02:00:45.200 -09:00|

Copy

Code :

 SELECT current_timestamp at time zone 'Central America Standard Time';
Copy

Résultat :

                          DATE|
------------------------------+
2022-10-10 10:55:50.090 -06:00|

Copy

Code :

 SELECT
CONVERT_TIMEZONE('America/Costa_Rica', CURRENT_TIMESTAMP() /*** SSC-FDM-TS0024 - CURRENT_TIMESTAMP in At Time Zone statement may have a different behavior in certain cases ***/);
Copy

Résultat :

                          DATE|
------------------------------+
2022-10-10 10:55:50.090 -06:00|

Copy

Problèmes connus

  1. Snowflake ne prend pas en charge tous les fuseaux horaires comme SQL Server. Vous pouvez consulter les fuseaux horaires pris en charge ici.

 SELECT current_timestamp at time zone 'Turks And Caicos Standard Time';
Copy

Résultat :

                          DATE|
------------------------------+
2022-12-14 20:04:18.317 -05:00| 

Copy
 SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-TS0063 - TIME ZONE NOT SUPPORTED IN SNOWFLAKE ***/!!!
CURRENT_TIMESTAMP() at time zone 'Turks And Caicos Standard Time';
Copy

EWIs connexes

  1. SSC-FDM-TS0024 : L’instruction CURRENT_TIMESTAMP dans At Time Zone peut avoir un comportement différent dans certains cas.

  2. SSC-EWI-TS0063 : Fuseau horaire non pris en charge par Snowflake.

DATEADD

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie un entier représentant la partie de la date spécifiée. (DATEPART dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

DATEADD (datepart , number , date )  

Copy

Documentation Snowflake SQL

DATEADD( <date_or_time_part>, <value>, <date_or_time_expr> )

Copy

Exemples

Code :

 SELECT DATEADD(year,123, '20060731') as ADDDATE;  
Copy

Résultat :

                 ADDDATE|
------------------------+
 2129-07-31 00:00:00.000|

Copy

Code :

 SELECT
DATEADD(year, 123, '20060731') as ADDDATE;
Copy

Résultat :

                 ADDDATE|
------------------------+
 2129-07-31 00:00:00.000|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

DATEDIFF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie la valeur de retour (sous forme d’entier signé) des limites de la partie de date spécifiée franchies entre la startDate et la endDate spécifiées. (DATEDIFF dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

DATEDIFF ( datepart , startdate , enddate )  

Copy

Documentation Snowflake SQL

DATEDIFF( <date_or_time_part>, <date_or_time_expr1>, <date_or_time_expr2> )

Copy

Exemples

Code :

 SELECT DATEDIFF(year,'2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
Copy

Résultat :

DIFF|
----+
   1|

Copy

Code :

 SELECT DATEDIFF(year,'2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
Copy

Résultat :

DIFF|
----+
   1|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

DATEFROMPARTS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie une valeur date qui mappe les valeurs de l’année, du mois et du jour spécifiées. (DATEFROMPARTS in Transact-SQL).

Modèle de source d’échantillon

Syntaxe

DATEFROMPARTS ( year, month, day )  

Copy

Documentation Snowflake SQL

DATE_FROM_PARTS( <year>, <month>, <day> )

Copy

Exemples

Code :

 SELECT DATEFROMPARTS ( 2010, 12, 31 ) AS RESULT;  
Copy

Résultat :

    RESULT|
----------+
2022-12-12|

Copy

Code :

 SELECT DATE_FROM_PARTS ( 2010, 12, 31 ) AS RESULT;
Copy

Résultat :

    RESULT|
----------+
2022-12-12|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

DATENAME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie une chaîne de caractères représentant la partie de la date spécifiée. (DATENAME dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

DATENAME ( datepart , date )  

Copy

Note

Cette transformation utilise plusieurs fonctions qui dépendent des entrées

DATE_PART( <date_or_time_part> , <date_or_time_expr> )
MONTHNAME( <date_or_timestamp_expr> )
DAYNAME( <date_or_timestamp_expr> )

Copy

Exemples

Code :

 SELECT DATENAME(month, getdate()) AS DATE1,
DATENAME(day, getdate()) AS DATE2,
DATENAME(dw, GETDATE()) AS DATE3;
Copy

Résultat :

DATE1|DATE2|DATE3  |
-----+-----+-------+
May  |3    |Tuesday|

Copy

Code :

 SELECT MONTHNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE1,
DAYNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE2,
DAYNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE3;
Copy

Résultat :

DATE1|DATE2|DATE3 |
-----+-----+------+
May  |Tue  |Tue   |

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

DATEPART

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie un entier représentant la partie de la date spécifiée. (DATEPART dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

DATEPART ( datepart , date )  

Copy

Documentation Snowflake SQL

DATE_PART( <date_or_time_part> , <date_or_time_expr> )

Copy

Exemples

Code :

 SELECT DATEPART(YEAR, '10-10-2022') as YEAR
Copy

Résultat :

YEAR |
-----+
 2022|

Copy

Code :

 SELECT
DATE_PART(YEAR, '10-10-2022' :: TIMESTAMP) as YEAR;
Copy

Résultat :

YEAR |
-----+
 2022| 

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

DAY

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonctionnalité renvoie un entier qui représente le jour (jour du mois) de la date spécifiée. (DAY dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

DAY ( date )  

Copy

Documentation Snowflake SQL

DAY( <date_or_timestamp_expr> )

Copy

Exemples

Code :

 SELECT DAY('10-10-2022') AS DAY
Copy

Résultat :

DAY  |
-----+
   10|

Copy

Code :

 SELECT DAY('10-10-2022' :: TIMESTAMP) AS DAY;
Copy

Résultat :

DAY  |
-----+
   10|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

EOMONTH

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Cette fonction renvoie le dernier jour du mois contenant une date spécifiée, avec un décalage facultatif. (EOMONTH dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

EOMONTH ( start_date [, month_to_add ] )  

Copy

Documentation Snowflake SQL

LAST_DAY( <date_or_time_expr> [ , <date_part> ] )

Copy

Exemples

Code :

 SELECT EOMONTH (GETDATE()) AS Result; 
Copy

Résultat :

    RESULT|
----------+
2022-05-31|

Copy

Code :

 SELECT
LAST_DAY(DATEADD('month', 0, CURRENT_TIMESTAMP() :: TIMESTAMP)) AS Result;
Copy

Résultat :

    RESULT|
----------+
2022-05-31|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

GETDATE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie l’horodatage actuel du système de la base de données sous la forme d’une valeur datetime sans le décalage du fuseau horaire de la base de données. (GETDATE dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

GETDATE() 

Copy

Documentation Snowflake SQL

CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )

Copy

Exemples

Code :

 SELECT GETDATE() AS DATE;
Copy

Résultat :

DATE                   |
-----------------------+
2022-05-06 09:54:42.757|

Copy

Code :

 SELECT CURRENT_TIMESTAMP() :: TIMESTAMP AS DATE;
Copy

Résultat :

DATE                   |
-----------------------+
2022-05-06 08:55:05.422|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

MONTH

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie un entier qui représente le mois de la date spécifiée. (MONTH dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

MONTH( date )  

Copy

Documentation Snowflake SQL

MONTH ( <date_or_timestamp_expr> )

Copy

Exemples

Code :

 SELECT MONTH('10-10-2022') AS MONTH
Copy

Résultat :

MONTH|
-----+
   10|

Copy

Code :

 SELECT MONTH('10-10-2022' :: TIMESTAMP) AS MONTH;
Copy

Résultat :

MONTH|
-----+
   10|

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SWITCHOFFSET

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

SWITCHOFFSET ajuste une valeur d’horodatage donnée à un décalage de fuseau horaire spécifique. Cela se fait par le biais de valeurs numériques. De plus amples informations sont disponibles ici : SWITCHOFFSET (Transact-SQL).

Modèle de source d’échantillon

Syntaxe

Un assistant UDF accomplit l’équivalence fonctionnelle : elle partage aussi la même syntaxe que la fonction SWITCHOFFSET de SQLServer.

 SWITCHOFFSET ( datetimeoffset_expression, timezoneoffset_expression )   
Copy
 SWITCHOFFSET_UDF ( timestamp_tz_expression, timezoneoffset_expression )   
Copy

Exemple

Code :

SELECT 
  '1998-09-20 7:45:50.71345 +02:00' as fr_time,
  SWITCHOFFSET('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;  
Copy

Résultat :

fr_time                         cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00

Copy

Code :

 SELECT
  '1998-09-20 7:45:50.71345 +02:00' as fr_time,
  PUBLIC.SWITCHOFFSET_UDF('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;
Copy

Résultat :

fr_time                         cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SYSDATETIME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une valeur datetime2(7) qui contient la date et l’heure de l’ordinateur sur lequel l’instance SQL Server est exécutée. (SYSDATETIME dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

SYSDATETIME ( )  

Copy

Documentation Snowflake SQL

LOCALTIME()

Copy

Exemples

Code :

 SELECT SYSDATETIME ( ) AS SYSTEM_DATETIME;
Copy

Résultat :

SYSTEM_DATETIME        |
-----------------------+
2022-05-06 12:08:05.501|

Copy

Code :

 SELECT LOCALTIME ( ) AS SYSTEM_DATETIME;
Copy

Résultat :

SYSTEM_DATETIME        |
-----------------------+
211:09:14              |

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

SYSUTCDATETIME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie une valeur datetime2(7) qui contient la date et l’heure de l’ordinateur sur lequel l’instance SQL Server est exécutée. (SYSUTCDATETIME dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

SYSUTCDATETIME ( )  

Copy

Documentation Snowflake SQL

SYSDATE()

Copy

Exemples

Code :

 SELECT SYSUTCDATETIME() as SYS_UTC_DATETIME;
Copy

Résultat :

SYSTEM_UTC_DATETIME        |
---------------------------+
2023-02-02 20:59:28.0926502|

Copy

Code :

 SELECT
SYSDATE() as SYS_UTC_DATETIME;
Copy

Résultat :

SYSTEM_UTC_DATETIME      |
-------------------------+
2023-02-02 21:02:05.557  |

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.

YEAR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Description

Renvoie un entier qui représente l’année de la date spécifiée. (YEAR dans Transact-SQL).

Modèle de source d’échantillon

Syntaxe

YEAR( date )  

Copy

Documentation Snowflake SQL

YEAR ( <date_or_timestamp_expr> )

Copy

Exemples

Code :

 SELECT YEAR('10-10-2022') AS YEAR
Copy

Résultat :

YEAR |
-----+
2022 |

Copy

Code :

 SELECT YEAR('10-10-2022' :: TIMESTAMP) AS YEAR;
Copy

Résultat :

YEAR |
-----+
2022 |

Copy

Problèmes connus

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

EWIs connexes

Pas d’EWIs connexes.