SnowConvert : Fonctions intégrées Transact¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Agrégation ¶
TransactSQL | Snowflake | Notes |
---|---|---|
TransactSQL | Snowflake | Notes |
APPROX_COUNT_DISTINCT | APPROX_COUNT_DISTINCT | |
AVG | AVG | |
CHECKSUM_AGG | *to be defined | |
COUNT | COUNT | |
COUNT_BIG | *to be defined | |
GROUPING | GROUPING | |
GROUPING_ID | GROUPING_ID | |
MAX | MAX | |
MIN | MIN | |
STDEV | STDDEV, STDEV_SAMP | |
STDEVP | STDDEV_POP | |
SUM | SUM | |
VAR | VAR_SAMP | |
VARP | VAR_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 < ;, >, =, < ;> 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 < ;, >, =, < ;> alors doit être suivi d’un NULL</p> |
*à 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 < ;, >, =, < ;> 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 ¶
TransactSQL | Snowflake | Notes |
---|---|---|
TransactSQL | Snowflake | Notes |
@@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 defined | Maps to CURRENT_USER when no args |
DATABASEPROPERTYEX | *to be defined | |
DB_ID | *to be defined | We 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 defined | Mostly 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 defined | In 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 defined | Can 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_NAME | This transformation only occurs when it is inside a DeclareStatement. |
OBJECTPROPERTY | *to be defined | |
OBJECTPROPERTYEX | *to be defined | |
ORIGINAL_DB_NAME | *to be defined | |
PARSENAME | PARSENAME_UDF | It creates a UDF to emulate the same behavior of Parsename function. |
*to be defined | ||
SCHEMA_NAME | *to be defined | |
SCOPE_IDENTITY | *to be defined | It 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 |
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 )
NVL( <expr1> , <expr2> )
Exemples¶
Code :
SELECT ISNULL(NULL, 'SNOWFLAKE') AS COMPANYNAME;
Résultat :
+-----------+
|COMPANYNAME|
+-----------+
|SNOWFLAKE |
+-----------+
Code :
SELECT
NVL(NULL, 'SNOWFLAKE') AS COMPANYNAME;
Résultat :
+-----------+
|COMPANYNAME|
+-----------+
|SNOWFLAKE |
+-----------+
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 ( )
UUID_STRING()
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;
Résultat :
+------------------------------------+
|ID |
+------------------------------------+
|47549DDF-837D-41D2-A59C-A6BC63DF7910|
+------------------------------------+
Code :
SELECT
UUID_STRING( ) AS ID;
Résultat :
+------------------------------------+
|ID |
+------------------------------------+
|6fd4312a-7925-4ad9-85d8-e039efd82089|
+------------------------------------+
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 )
NULLIF( <expr1> , <expr2> )
Exemples¶
Code :
SELECT NULLIF(6,9) AS RESULT1, NULLIF(5,5) AS RESULT2;
Résultat :
+-------+-------+
|RESULT1|RESULT2|
+-------+-------+
|6 |null |
+-------+-------+
Code :
SELECT
NULLIF(6,9) AS RESULT1,
NULLIF(5,5) AS RESULT2;
Résultat :
+-------+-------+
|RESULT1|RESULT2|
+-------+-------+
|6 |null |
+-------+-------+
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
SQLROWCOUNT
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;
Résultat :
+-+
| |
+-+
|3|
+-+
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();
Résultat :
+----------+
|:ADDCOUNT |
+----------+
| 3 |
+----------+
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 ] ] )
Exemples¶
Code :
SELECT FORMATMESSAGE('This is the %s and this is the %s.', 'first variable', 'second variable') AS RESULT;
Résultat :
RESULT|
-----------------------------------------------------------+
This is the first variable and this is the second variable.|
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;
Résultat :
RESULT |
-----------------------------------------------------------+
This is the first variable and this is the second variable.|
Problèmes connus ¶
Aucun problème n’a été constaté.
EWIs connexes ¶
Pas d’EWIs connexes.
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,)
$$;
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 )
Documentation complète de Snowflake SQL
{CHR | CHAR} ( <input> )
Documentation complète de JavaScript
String.fromCharCode( expression1, ... , expressionN )
Exemples¶
Entrée :
SELECT CHAR(170) AS SMALLEST_A
Sortie :
SMALLEST_A|
-----------+
ª|
Code :
SELECT
CHAR(170) AS SMALLEST_A;
Résultat :
SMALLEST_A|
-----------+
ª|
Code :
CREATE OR REPLACE FUNCTION get_char(expression float)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
return String.fromCharCode( EXPRESSION );
$$;
SELECT GET_CHAR(170) SMALLEST_A;
Résultat :
SMALLEST_A|
-----------+
ª|
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] )
Documentation complète de Snowflake SQL
CHARINDEX( <expr1>, <expr2> [ , <start_pos> ] )
Documentation complète de JavaScript
String.indexOf( search_value [, index] )
Exemples¶
Code :
SELECT CHARINDEX('t', 'Customer') AS MatchPosition;
Résultat :
INDEX|
-----------+
33|
Code :
SELECT
CHARINDEX('t', 'Customer') AS MatchPosition;
Résultat :
INDEX|
-----------+
33|
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;
Résultat :
INDEX|
-----------+
33|
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 ] )
COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )
Exemples¶
Code :
SELECT TOP 10 StartDate,
COALESCE(EndDate,'2000-01-01') AS FIRST_NOT_NULL
FROM HumanResources.EmployeeDepartmentHistory
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|
Code :
SELECT TOP 10
StartDate,
COALESCE(EndDate,'2000-01-01') AS FIRST_NOT_NULL
FROM
HumanResources.EmployeeDepartmentHistory;
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|
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 ] )
Documentation complète de Snowflake SQL
CONCAT( <expr1> [ , <exprN> ... ] )
<expr1> || <expr2> [ || <exprN> ... ]
Documentation complète de JavaScript
String.concat( expression1, ..., expressionN )
Exemples¶
Code :
SELECT CONCAT('Ray',' ','of',' ','Light') AS TITLE;
Sortie :
TITLE|
------------+
Ray of Light|
Code :
SELECT
CONCAT('Ray',' ','of',' ','Light') AS TITLE;
Sortie :
TITLE|
------------+
Ray of Light|
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;
\ Sortie :
TITLE|
------------+
Ray of Light|
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 )
Documentation complète de Snowflake SQL
LEFT ( <expr> , <length_expr> )
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);
Exemples¶
Code :
SELECT LEFT('John Smith', 5) AS FIRST_NAME;
Sortie :
FIRST_NAME|
----------+
John |
Code :
SELECT LEFT('John Smith', 5) AS FIRST_NAME;
Sortie :
FIRST_NAME|
----------+
John |
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;
\ Sortie :
FIRST_NAME|
----------+
John |
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 )
Documentation complète de Snowflake SQL
LENGTH( <expression> )
LEN( <expression> )
Documentation complète de JavaScript SQL
string.length
Exemples¶
Code :
SELECT LEN('Sample text') AS [LEN];
Sortie :
LEN|
---+
11|
Code :
SELECT LEN('Sample text') AS LEN;
Sortie :
LEN|
---+
11|
Code :
CREATE OR REPLACE FUNCTION get_len(str varchar)
RETURNS float
LANGUAGE JAVASCRIPT
AS
$$
return STR.length;
$$;
SELECT GET_LEN('Sample text') LEN;
\ Sortie :
LEN|
---+
11|
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 )
Documentation complète de Snowflake SQL
LOWER( <expr> )
Documentation complète de JavaScript SQL
String.toLowerCase( )
Exemples¶
Code :
SELECT LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') AS LOWERCASE;
Sortie :
LOWERCASE |
-------------------------------------+
you are a prediction of the good ones|
Code :
SELECT LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') AS LOWERCASE;
Sortie :
LOWERCASE |
-------------------------------------+
you are a prediction of the good ones|
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;
\ Sortie :
LOWERCASE |
-------------------------------------+
you are a prediction of the good ones|
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 )
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);
|
------------+
ª|
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 )
Documentation complète de Snowflake SQL
REPLACE( <subject> , <pattern> [ , <replacement> ] )
String.replace( pattern, new_expression)
Exemples¶
Code :
SELECT REPLACE('Real computer software', 'software','science') AS COLUMNNAME;
Sortie :
COLUMNNAME |
---------------------+
Real computer science|
Code :
SELECT REPLACE('Real computer software', 'software','science') AS COLUMNNAME;
Sortie :
COLUMNNAME |
---------------------+
Real computer science|
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;
\ Sortie :
COLUMNNAME |
---------------------+
Real computer science|
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 )
REPEAT(<input>, <n>)
String.repeat( number_expression )
Exemples¶
Code :
SELECT REPLICATE('Staying alive',5) AS RESULT
Résultat :
RESULT |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|
Code :
SELECT REPEAT('Staying alive',5) AS RESULT;
Résultat :
RESULT |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|
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;
Résultat :
RESULT |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|
Problèmes connus ¶
Aucun problème n’a été constaté.
EWIs connexes ¶
Pas d’EWIs connexes.
RIGHT¶
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¶
RIGHT ( character_expression , integer_expression )
Documentation complète de Snowflake SQL
RIGHT( <expr> , <length_expr> )
UDF utilisée pour émuler le comportement
function RIGHT(string, index){
if(index< 0){
throw new RangeError('Invalid INDEX on RIGHT function');
}
return string.slice( string.length - index, string.length );
}
Exemples¶
Code :
SELECT RIGHT('John Smith', 5) AS LAST_NAME;
Sortie :
LAST_NAME|
------------+
Smith|
Code :
SELECT RIGHT('John Smith', 5) AS LAST_NAME;
Sortie :
LAST_NAME|
------------+
Smith|
Code :
CREATE OR REPLACE FUNCTION right_str(str varchar, index float)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
function RIGHT(string, index){
if(index< 0){
throw new RangeError('Invalid INDEX on RIGHT function');
}
return string.slice( string.length - index, string.length );
}
return RIGHT(STR, INDEX);
$$;
SELECT RIGHT_STR('John Smith', 5) AS LAST_NAME;
\ Sortie :
LAST_NAME|
------------+
Smith|
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 )
Documentation complète de Snowflake SQL
RTRIM(<expr> [, <characters> ])
Fonction personnalisée utilisée pour émuler le comportement
function RTRIM(string){
return string.replace(/s+$/,"");
}
Exemples¶
Entrée :
SELECT RTRIM('LAST TWO BLANK SPACES ') AS [RTRIM]
Sortie :
RTRIM |
---------------------+
LAST TWO BLANK SPACES|
Code :
SELECT RTRIM('LAST TWO BLANK SPACES ') AS RTRIM;
Résultat :
RTRIM |
---------------------+
LAST TWO BLANK SPACES|
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;
Résultat :
RTRIM |
---------------------+
LAST TWO BLANK SPACES|
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 )
Documentation complète de Snowflake SQL
SPACE(<n>)
Fonction personnalisée utilisée pour émuler le comportement
function SPACE( occurrences ){
return ' '.repeat( occurrences );
}
Exemples¶
Entrée :
SELECT CONCAT('SOME', SPACE(5), 'TEXT') AS RESULT;
Sortie :
RESULT |
-------------+
SOME TEXT|
Entrée :
SELECT CONCAT('SOME', SPACE(5), 'TEXT') AS RESULT;
Sortie :
RESULT |
-------------+
SOME TEXT|
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;
Sortie :
RESULT |
-------------+
SOME TEXT|
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 )
Documentation complète de Snowflake SQL
SUBSTR( <base_expr>, <start_expr> [ , <length_expr> ] )
SUBSTRING( <base_expr>, <start_expr> [ , <length_expr> ] )
Fonction personnalisée utilisée pour émuler le comportement
string.substring( indexA [, indexB])
Exemples¶
Entrée :
SELECT SUBSTRING('abcdef', 2, 3) AS SOMETEXT;
Sortie :
SOMETEXT|
--------+
bcd |
Code :
SELECT SUBSTRING('abcdef', 2, 3) AS SOMETEXT;
Résultat :
SOMETEXT|
--------+
bcd |
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;
Résultat :
SOMETEXT|
--------+
bcd |
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 )
Documentation complète de Snowflake SQL
UPPER( <expr> )
Documentation complète de JavaScript SQL
String.toUpperCase( )
Exemples¶
Code :
SELECT UPPER('you are a prediction of the good ones') AS [UPPER]
Sortie :
+-------------------------------------+
|UPPER |
+-------------------------------------+
|YOU ARE A PREDICTION OF THE GOOD ONES|
+-------------------------------------+
Code :
SELECT
UPPER('you are a prediction of the good ones') AS UPPER;
Sortie :
+-------------------------------------+
|UPPER |
+-------------------------------------+
|YOU ARE A PREDICTION OF THE GOOD ONES|
+-------------------------------------+
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;
\ Sortie :
UPPER |
-------------------------------------+
YOU ARE A PREDICTION OF THE GOOD ONES|
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 )
Arguments¶
expression
: VARCVHAR
ou expression CHAR
.
Type de renvoi¶
INT
.
Exemples¶
SELECT ASCII('A') AS A , ASCII('a') AS a;
A| a|
-----------+ ----------+
65| 97|
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] )
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;
A| a|
-----------+ ----------+
65| 97|
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])
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;
HELLO|
---------+
`Hello`|
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);
}
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;
HELLO|
---------+
`Hello`|
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 )
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;
NAME|
------------+
Mariah Carey|
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 )
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;
NAME|
------------+
Mariah Carey|
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 )
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;
TWO| TOO|
---------+---------+
T000| T000|
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));
}
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;
TWO| TOO|
---------+---------+
T000| T000|
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 )
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;
PALINDROME|
----------------+
rotator|
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("");
}
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;
PALINDROME|
----------------+
rotator|
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 )
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];
ESCAPE|
--------------------------+
\\ \/ \\\\ \" |
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 )
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;
ESCAPE|
--------------------------+
\\ \/ \\\\ \" |
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 )
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];
Sortie :
+-------------------------------+
|TRIM |
+-------------------------------+
|FIRST AND LAST TWO BLANK SPACES|
+-------------------------------+
Code :
SELECT TRIM(' FIRST AND LAST TWO BLANK SPACES ') AS TRIM;
Sortie :
+-------------------------------+
|TRIM |
+-------------------------------+
|FIRST AND LAST TWO BLANK SPACES|
+-------------------------------+
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( )
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
TRIM|
-------------------------------+
FIRST AND LAST TWO BLANK SPACES|
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 )
Arguments¶
expression1, expression2 :
Expressions de chaînes à comparer.
Type de renvoi¶
Int
.
Exemples¶
SELECT DIFFERENCE('Like', 'Mike');
Output |
-----------|
3 |
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;
}
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;
DIFFERENCE|
-------------+
4|
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])
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';
GREAT BRITAIN|
---------------+
24/01/2022|
SELECT FORMAT(244900.25, 'C', 'cr-CR') AS 'CURRENCY';
CURRENCY|
---------------+
₡244,900.25|
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 )
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 )
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;
GREAT_BRITAIN|
---------------+
24/01/2022|
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;
CURRENCY|
---------------+
244.900,25 CRC|
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 )
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]
PATINDEX|
------------+
10|
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 )
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;
PATINDEX|
------------+
10|
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 ] ] )
STR_UDF( numeric_expression, number_format )
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);
Sortie :
1) 124
2) **
3) 123
4) 123.5
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');
Sortie :
1) 124
2) ##
3) 123
4) 123.5
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);
}
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);
STR|
--------------+
12345.674000|
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 )
Arguments¶
string_expression :
Expressions de chaînes à convertir.
Type de renvoi¶
VARCHAR
ou NVARCHAR
Exemples¶
SELECT LTRIM(' FIRST TWO BLANK SPACES') AS [LTRIM]
LTRIM|
----------------------+
FIRST TWO BLANK SPACES|
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+/,"");
}
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;
LTRIM|
----------------------+
FIRST TWO BLANK SPACES|
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 > )
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 > )
Exemples¶
Code :
SELECT TOP 10 BUSINESSENTITYID, NATIONALIDNUMBER, RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK FROM HUMANRESOURCES.EMPLOYEE AS TOTAL
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|
Code :
SELECT TOP 10
BUSINESSENTITYID,
NATIONALIDNUMBER,
RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK
FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
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|
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 )
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 )
Exemples¶
Code :
SELECT TOP 10 BUSINESSENTITYID, NATIONALIDNUMBER, RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK FROM HUMANRESOURCES.EMPLOYEE AS TOTAL
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|
Code :
SELECT TOP 10
BUSINESSENTITYID,
NATIONALIDNUMBER,
RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK
FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
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|
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 )
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 )
Exemples¶
Code :
SELECT
ROW_NUMBER() OVER(ORDER BY NAME ASC) AS RowNumber,
NAME
FROM HUMANRESOURCES.DEPARTMENT
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 |
Code :
SELECT
ROW_NUMBER() OVER(ORDER BY NAME ASC) AS RowNumber,
NAME
FROM
HUMANRESOURCES.DEPARTMENT;
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 |
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 )
IFF( <condition> , <expr1> , <expr2> )
Exemples¶
Code :
SELECT IIF( 2 > 3, 'TRUE', 'FALSE' ) AS RESULT
Résultat :
RESULT|
------+
FALSE|
Code :
SELECT
IFF( 2 > 3, 'TRUE', 'FALSE' ) AS RESULT;
Résultat :
RESULT|
------+
FALSE|
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;
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> |
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;
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> |
Problèmes connus¶
Aucun problème n’a été constaté.
EWIs connexes¶
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;
ID | ProductName | Warranty |
----+-------------+------------------------+
1 | Road Bike | 1 year parts and labor |
2 | Skate | 1 year parts and labor |
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;
ID | PRODUCTNAME | WARRANRTY |
----+-------------+------------------------+
1 | Road Bike | 1 year parts and labor |
2 | Skate | 1 year parts and labor |
Problèmes connus¶
Aucun problème n’a été constaté.
EWIs connexes¶
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 ] | * } )
COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )
Exemples¶
Code :
SELECT COUNT(NATIONALIDNUMBER) FROM HUMANRESOURCES.EMPLOYEE AS TOTAL;
Résultat :
TOTAL|
-----+
290|
Code :
SELECT
COUNT(NATIONALIDNUMBER) FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Résultat :
TOTAL|
-----+
290|
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 ] | * } )
COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )
Exemples¶
Code :
SELECT COUNT_BIG(NATIONALIDNUMBER) FROM HUMANRESOURCES.EMPLOYEE AS TOTAL;
Résultat :
TOTAL|
-----+
290|
Code :
SELECT
COUNT(NATIONALIDNUMBER) FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Résultat :
TOTAL|
-----+
290|
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 )
SUM( [ DISTINCT ] <expr1> )
Exemples¶
Code :
SELECT SUM(VACATIONHOURS) FROM HUMANRESOURCES.EMPLOYEE AS TOTALVACATIONHOURS;
Résultat :
TOTALVACATIONHOURS|
------------------+
14678|
Code :
SELECT
SUM(VACATIONHOURS) FROM
HUMANRESOURCES.EMPLOYEE AS TOTALVACATIONHOURS;
Résultat :
TOTALVACATIONHOURS|
------------------+
14678|
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
XML : Un
VARCHAR
qui représente le contenu lisible du XML.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);
$$;
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));
CustomerID | ContactName
----------------------------+
VINET | Paul Henriot
LILAS | Carlos Gonzlez
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;
CustomerID | ContactName
----------------------------+
VINET | Paul Henriot
LILAS | Carlos Gonzlez
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'));
CustomerID | ContactName
----------------------------+
VINET | Paul Henriot
Problèmes connus ¶
Aucun problème n’a été constaté.
EWIs connexes¶
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¶
FLOAT\EXPR : Une expression numérique à convertir en varchar.
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')
$$;
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;
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;
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
source_timestamp : Un TIMESTAMP\_TZ qui peut être résolu en une valeur datetimeoffset(n).
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
$$;
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;
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;
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;
fr_time cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00
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 ] )
CURRENT_DATABASE() /*** SSC-FDM-TS0010 - CURRENT_DATABASE function has different behavior in certain cases ***/
Exemples¶
Code :
SELECT DB_NAME();
Résultat :
RESULT |
-------------------+
ADVENTUREWORKS2019 |
Code :
SELECT
CURRENT_DATABASE() /*** SSC-FDM-TS0010 - CURRENT_DATABASE function has different behavior in certain cases ***/;
Résultat :
RESULT |
-------------------+
ADVENTUREWORKS2019 |
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¶
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' ] )
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;
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;
2. Unknown database¶
Code :
IF OBJECT_ID_UDF('DATABASE1.DBO.TABLE1') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
Code :
IF (
OBJECT_ID_UDF('DATABASE1.DBO.TABLE1') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
3. Different object names¶
Code :
IF OBJECT_ID_UDF('DATABASE1.DBO.TABLE2') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
Code :
IF (
OBJECT_ID_UDF('DATABASE1.DBO.TABLE2') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
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¶
SSC-EWI-0001 : Jeton non reconnu sur la ligne du code source.
SSC-FDM-0007 : Élément avec dépendances manquantes
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 )
COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )
Exemples¶
Code :
SELECT TOP 10
LAG(E.VacationHours,1) OVER(ORDER BY E.NationalIdNumber) as PREVIOUS,
E.VacationHours AS ACTUAL
FROM HumanResources.Employee E
Résultat :
PREVIOUS|ACTUAL|
--------+------+
NULL| 10|
10| 89|
89| 10|
10| 48|
48| 0|
0| 95|
95| 55|
55| 67|
67| 84|
84| 85|
Code :
SELECT TOP 10
LAG(E.VacationHours,1) OVER(ORDER BY E.NationalIdNumber) as PREVIOUS,
E.VacationHours AS ACTUAL
FROM
HumanResources.Employee E;
Résultat :
PREVIOUS|ACTUAL|
--------+------+
NULL| 10|
10| 89|
89| 10|
10| 48|
48| 0|
0| 95|
95| 55|
55| 67|
67| 84|
84| 85|
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 )
OCTET_LENGTH(<string_or_binary>)
Exemples¶
Code :
SELECT DATALENGTH('SomeString') AS SIZE;
Résultat :
SIZE|
----+
10|
Code :
SELECT OCTET_LENGTH('SomeString') AS SIZE;
Résultat :
SIZE|
----+
10|
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 )
ABS( <num_expr> )
Documentation complète de JavaScript
Math.abs( expression )
Exemples¶
Code :
SELECT ABS(-5);
Résultat :
ABS(-5)|
-------+
5|
Code :
SELECT ABS(-5);
Résultat :
ABS(-5)|
-------+
5|
Code :
CREATE OR REPLACE FUNCTION compute_abs(a float)
RETURNS float
LANGUAGE JAVASCRIPT
AS
$$
return Math.abs(A);
$$
;
SELECT COMPUTE_ABS(-5);
\ Résultat :
COMPUTE_ABS(-5)|
---------------+
5|
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 ) ]
AVG( [ DISTINCT ] <expr1> )
AVG( [ DISTINCT ] <expr1> ) OVER (
[ PARTITION BY <expr2> ]
[ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
)
Exemples¶
Code :
SELECT AVG(VACATIONHOURS) AS AVG_VACATIONS FROM HUMANRESOURCES.EMPLOYEE;
Résultat :
AVG_VACATIONS|
-------------+
50|
Code :
SELECT AVG(VACATIONHOURS) AS AVG_VACATIONS FROM HUMANRESOURCES.EMPLOYEE;
Résultat :
AVG_VACATIONS|
-------------+
50.613793|
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 )
CEIL( <input_expr> [, <scale_expr> ] )
Math.ceil( expression )
Exemples¶
Code :
SELECT CEILING(642.20);
\ Résultat :
CEILING(642.20)|
---------------+
643 |
Code :
SELECT CEIL(642.20);
\ Résultat :
CEIL(642.20)|
------------+
643 |
Code :
CREATE OR REPLACE FUNCTION compute_ceil(a double)
RETURNS double
LANGUAGE JAVASCRIPT
AS
$$
return Math.ceil(A);
$$
;
SELECT COMPUTE_CEIL(642.20);
\ Résultat :
COMPUTE_CEIL(642.20)|
--------------------+
643|
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 )
FLOOR( <input_expr> [, <scale_expr> ] )
Exemples¶
Code :
SELECT FLOOR (124.87) AS FLOOR;
Résultat :
FLOOR|
-----+
124|
Code :
SELECT FLOOR (124.87) AS FLOOR;
Résultat :
FLOOR|
-----+
124|
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 )
POW(x, y)
POWER (x, y)
Exemples¶
Code :
SELECT POWER(2, 10.0) AS IntegerResult
Résultat :
IntegerResult |
--------------+
1024|
Code :
SELECT POWER(2, 10.0) AS IntegerResult;
Résultat :
IntegerResult |
--------------+
1024|
Documentation Connexe¶
Types numériques pris en charge par SQL Server
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 ] )
ROUND( <input_expr> [, <scale_expr> ] )
Exemples¶
Code :
SELECT ROUND(123.9994, 3) AS COL1, ROUND(123.9995, 3) AS COL2;
Résultat :
COL1 |COL2 |
--------+--------+
123.9990|124.0000|
Code :
SELECT ROUND(123.9994, 3) AS COL1,
ROUND(123.9995, 3) AS COL2;
Résultat :
COL1 | COL2 |
--------+------+
123.999|124.000|
Documentation Connexe¶
Types numériques pris en charge par SQL Server
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 )
SQRT(expr)
Exemples¶
Code :
SELECT SQRT(25) AS RESULT;
Résultat :
RESULT|
------+
5.0|
Code :
SELECT SQRT(25) AS RESULT;
Résultat :
RESULT|
------+
5.0|
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 )
SQUARE(expr)
Exemples¶
Code :
SELECT SQUARE (5) AS SQUARE;
Résultat :
SQUARE|
------+
25.0|
Code :
SELECT SQUARE (5) AS SQUARE;
Résultat :
SQUARE|
------+
25|
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 )
STDDEV( [ DISTINCT ] <expression_1> )
Exemples¶
Code :
SELECT
STDEV(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS STDEV;
Résultat :
STDEV|
----------------+
28.7862150320948|
Code :
SELECT
STDDEV(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS STDEV;
Résultat :
STDEV|
------------+
28.786215034|
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 )
STDDEV_POP( [ DISTINCT ] expression_1)
Exemples¶
Code :
SELECT
STDEVP(VACATIONHOURS) AS STDEVP_VACATIONHOURS
FROM
HumanResources.Employee;
Résultat :
STDEVP_VACATIONHOURS|
--------------------+
28.736540767245085|
Code :
SELECT
STDDEV_POP(VACATIONHOURS) AS STDEVP_VACATIONHOURS
FROM
HumanResources.Employee;
Résultat :
STDEVP_VACATIONHOURS|
--------------------+
28.736540763|
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 )
VAR_SAMP( [DISTINCT] <expr1> )
Exemples¶
Code :
SELECT
VAR(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS VAR;
Résultat :
VAR|
----------------+
28.7862150320948|
Code :
SELECT
VAR_SAMP(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS VAR;
Résultat :
VAR|
----------+
828.646176|
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 )
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 Type | Return Type |
---|---|
float, real | float |
decimal(p, s) | decimal(38, s) |
int, smallint, tinyint | int |
bigint | bigint |
money, smallmoney | money |
bit, char, nchar, varchar, nvarchar | float |
Exemples¶
SELECT POWER(2, 3)
POWER(2, 3)|
-----------+
8.0|
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 )
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);
COMPUTE_POW(2, 3)|
-----------------+
8|
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 )
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);
ACOS(-1.0) |
-----------------+
3.141592653589793|
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 )
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);
COMPUTE_ACOS(-1)|
---------------+
3.141592654|
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 )
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);
ASIN(0.5) |
------------------+
0.5235987755982989|
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 )
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);
COMPUTE_ASIN(1) |
------------------+
0.5235987756|
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 )
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())
COS(PI())|
---------+
-1.0|
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 )
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());
COMPUTE_COS(PI())|
-----------------+
-1|
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 )
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)
COT(1) |
------------------+
0.6420926159343306|
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 Math
dans 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);
}
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);
COMPUTE_COT(1); |
------------------+
0.6420926159343308|
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 )
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)
RADIANS(180) |
--------------------+
3.141592653589793116|
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;
}
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);
RADIANS(180) |
-----------------+
3.141592654|
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( )
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;
CIRCUMFERENCE @radius = 2 |
--------------------------+
12.5663706143592|
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
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);
CIRCUMFERENCE(2)|
------------------+
12.566370614359172|
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 )
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())
DEGREES(PI())|
-------------+
180.0|
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;
}
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());
COMPUTE_DEGREES(PI())|
---------------------+
180.0|
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 ] )
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)
LOG(8, 2) |
-----------+
3|
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 )
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);
BASE_LOG(2, 8)|
--------------+
3|
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 )
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);
ATAN(-30) |
-------------------+
-1.5374753309166493|
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 )
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);
COMPUTE_ATAN(-30)|
-----------------+
-1.537475331|
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 )
Arguments¶
expression1
et expression2
: Expressions numériques.
Type de renvoi¶
Expression numérique comprise entre $$-\pi$$ et $$\pi$$.
Exemples¶
SELECT ATN2(7.5, 2);
ATN2(7.5, 2) |
------------------+
1.3101939350475555|
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 )
Arguments¶
expression_1
et 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);
ATAN2(7.5, 3) |
------------------+
1.310193935|
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 )
Arguments¶
expression
: Expression numérique, doit être positive.
Type de renvoi¶
Float.
Exemples¶
SELECT LOG10(5)
LOG10(5) |
-----------------+
0.698970004336019|
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 )
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);
COMPUTE_LOG10(5)|
----------------+
0.6989700043|
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 )
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
EXP(LOG(20)) |LOG(EXP(20)) |
---------------+----------------+
20.0| 20.0|
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
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));
COMPUTE_EXP(LOG(20))|LOG(COMPUTE_EXP(20))|
--------------------+--------------------+
20.0| 20.0|
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 ] )
CAST( <source_expr> AS <target_data_type> )
Exemples¶
SELECT CONVERT(INT, '1998') as MyDate
MyDate |
-------+
1998 |
SELECT
CAST('1998' AS INT) as MyDate;
MYDATE |
-------+
1998 |
Conversion du type date en varchar¶
SELECT CONVERT(varchar, getdate(), 1) AS RESULT;
RESULT |
---------+
12/08/22 |
SELECT
TO_VARCHAR(CURRENT_TIMESTAMP() :: TIMESTAMP, 'mm/dd/yy') AS RESULT;
RESULT |
---------+
12/08/22 |
Conversion du type date en varchar avec taille¶
SELECT CONVERT(varchar(2), getdate(), 1) AS RESULT;
RESULT |
---------+
07 |
SELECT
LEFT(TO_VARCHAR(CURRENT_TIMESTAMP() :: TIMESTAMP, 'mm/dd/yy'), 2) AS RESULT;
RESULT |
---------+
07 |
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 ] )
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')
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)
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;
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;
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);
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);
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 )');
Transformés en
TO_VARIANT('2017-01-01 12:00:00');
TO_GEOGRAPHY('LINESTRING(-122.360 47.656, -122.343 47.656 )');
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)
Sera transformé en
CAST(14.85 AS INT) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/
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;
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;
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;
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 ¶
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
CONVERT_TIMEZONE( <source_tz> , <target_tz> , <source_timestamp_ntz> )
CONVERT_TIMEZONE( <target_tz> , <source_timestamp> )
Exemples¶
SELECT CAST('2022-11-24 11:00:45.2000000 +00:00' as datetimeoffset) at time zone 'Alaskan Standard Time';
Résultat :
DATE|
------------------------------+
2022-11-24 02:00:45.200 -09:00|
SELECT
CONVERT_TIMEZONE('America/Anchorage', CAST('2022-11-24 11:00:45.2000000 +00:00' as TIMESTAMP_TZ(7)));
Résultat :
DATE|
------------------------------+
2022-11-24 02:00:45.200 -09:00|
Code :
SELECT current_timestamp at time zone 'Central America Standard Time';
Résultat :
DATE|
------------------------------+
2022-10-10 10:55:50.090 -06:00|
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 ***/);
Résultat :
DATE|
------------------------------+
2022-10-10 10:55:50.090 -06:00|
Problèmes connus¶
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';
Résultat :
DATE|
------------------------------+
2022-12-14 20:04:18.317 -05:00|
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-TS0063 - TIME ZONE NOT SUPPORTED IN SNOWFLAKE ***/!!!
CURRENT_TIMESTAMP() at time zone 'Turks And Caicos Standard Time';
EWIs connexes¶
SSC-FDM-TS0024 : L’instruction CURRENT_TIMESTAMP dans At Time Zone peut avoir un comportement différent dans certains cas.
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 )
DATEADD( <date_or_time_part>, <value>, <date_or_time_expr> )
Exemples¶
Code :
SELECT DATEADD(year,123, '20060731') as ADDDATE;
Résultat :
ADDDATE|
------------------------+
2129-07-31 00:00:00.000|
Code :
SELECT
DATEADD(year, 123, '20060731') as ADDDATE;
Résultat :
ADDDATE|
------------------------+
2129-07-31 00:00:00.000|
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 )
DATEDIFF( <date_or_time_part>, <date_or_time_expr1>, <date_or_time_expr2> )
Exemples¶
Code :
SELECT DATEDIFF(year,'2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
Résultat :
DIFF|
----+
1|
Code :
SELECT DATEDIFF(year,'2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
Résultat :
DIFF|
----+
1|
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 )
DATE_FROM_PARTS( <year>, <month>, <day> )
Exemples¶
Code :
SELECT DATEFROMPARTS ( 2010, 12, 31 ) AS RESULT;
Résultat :
RESULT|
----------+
2022-12-12|
Code :
SELECT DATE_FROM_PARTS ( 2010, 12, 31 ) AS RESULT;
Résultat :
RESULT|
----------+
2022-12-12|
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 )
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> )
Exemples¶
Code :
SELECT DATENAME(month, getdate()) AS DATE1,
DATENAME(day, getdate()) AS DATE2,
DATENAME(dw, GETDATE()) AS DATE3;
Résultat :
DATE1|DATE2|DATE3 |
-----+-----+-------+
May |3 |Tuesday|
Code :
SELECT MONTHNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE1,
DAYNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE2,
DAYNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE3;
Résultat :
DATE1|DATE2|DATE3 |
-----+-----+------+
May |Tue |Tue |
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 )
DATE_PART( <date_or_time_part> , <date_or_time_expr> )
Exemples¶
Code :
SELECT DATEPART(YEAR, '10-10-2022') as YEAR
Résultat :
YEAR |
-----+
2022|
Code :
SELECT
DATE_PART(YEAR, '10-10-2022' :: TIMESTAMP) as YEAR;
Résultat :
YEAR |
-----+
2022|
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 )
DAY( <date_or_timestamp_expr> )
Exemples¶
Code :
SELECT DAY('10-10-2022') AS DAY
Résultat :
DAY |
-----+
10|
Code :
SELECT DAY('10-10-2022' :: TIMESTAMP) AS DAY;
Résultat :
DAY |
-----+
10|
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 ] )
LAST_DAY( <date_or_time_expr> [ , <date_part> ] )
Exemples¶
Code :
SELECT EOMONTH (GETDATE()) AS Result;
Résultat :
RESULT|
----------+
2022-05-31|
Code :
SELECT
LAST_DAY(DATEADD('month', 0, CURRENT_TIMESTAMP() :: TIMESTAMP)) AS Result;
Résultat :
RESULT|
----------+
2022-05-31|
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()
CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )
Exemples¶
Code :
SELECT GETDATE() AS DATE;
Résultat :
DATE |
-----------------------+
2022-05-06 09:54:42.757|
Code :
SELECT CURRENT_TIMESTAMP() :: TIMESTAMP AS DATE;
Résultat :
DATE |
-----------------------+
2022-05-06 08:55:05.422|
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 )
MONTH ( <date_or_timestamp_expr> )
Exemples¶
Code :
SELECT MONTH('10-10-2022') AS MONTH
Résultat :
MONTH|
-----+
10|
Code :
SELECT MONTH('10-10-2022' :: TIMESTAMP) AS MONTH;
Résultat :
MONTH|
-----+
10|
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 )
SWITCHOFFSET_UDF ( timestamp_tz_expression, timezoneoffset_expression )
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;
Résultat :
fr_time cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00
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;
Résultat :
fr_time cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00
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 ( )
LOCALTIME()
Exemples¶
Code :
SELECT SYSDATETIME ( ) AS SYSTEM_DATETIME;
Résultat :
SYSTEM_DATETIME |
-----------------------+
2022-05-06 12:08:05.501|
Code :
SELECT LOCALTIME ( ) AS SYSTEM_DATETIME;
Résultat :
SYSTEM_DATETIME |
-----------------------+
211:09:14 |
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 ( )
SYSDATE()
Exemples¶
Code :
SELECT SYSUTCDATETIME() as SYS_UTC_DATETIME;
Résultat :
SYSTEM_UTC_DATETIME |
---------------------------+
2023-02-02 20:59:28.0926502|
Code :
SELECT
SYSDATE() as SYS_UTC_DATETIME;
Résultat :
SYSTEM_UTC_DATETIME |
-------------------------+
2023-02-02 21:02:05.557 |
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 )
YEAR ( <date_or_timestamp_expr> )
Exemples¶
Code :
SELECT YEAR('10-10-2022') AS YEAR
Résultat :
YEAR |
-----+
2022 |
Code :
SELECT YEAR('10-10-2022' :: TIMESTAMP) AS YEAR;
Résultat :
YEAR |
-----+
2022 |
Problèmes connus ¶
Aucun problème n’a été constaté.
EWIs connexes ¶
Pas d’EWIs connexes.