SnowConvert: Funções internas do Transact

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Agregado

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

Analítico

TransactSQL

Snowflake

Notas

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

Agrupamento

TransactSQL

Snowflake

Notas

COLLATIONPROPERTY

*a ser definido

TERTIARY_WEIGHTS

*a ser definido

Configuração

TransactSQL

Snowflake

Notas

​@@DBTS

*a ser definido

@@LANGID

*a ser definido

@@LANGUAGE

*a ser definido

@@LOCK_TIMEOUT

*a ser definido

@@MAX_CONNECTIONS

*a ser definido

@@MAX_PRECISION

*a ser definido

@@NESTLEVEL

*a ser definido

@@OPTIONS

*a ser definido

@@REMSERVER

*a ser definido

@@SERVERNAME

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

@@SERVICENAME

*a ser definido

@@SPID

*a ser definido

@@TEXTSIZE

*a ser definido

@@VERSION

*a ser definido

Pode ser imitado com o uso de CURRENT_VERSION

Conversão

TransactSQL

Snowflake

Notas

CAST

CAST

<p>Retorna NULL se o valor não for um número; caso contrário, retorna o valor numérico como seu valor.<br>Ao usar operadores como &#x3C;, >, =, &#x3C;> deve ser seguido por um NULL</p>

CONVERT

Verifique CONVERT

O mesmo comportamento de CAST

PARSE

*a ser definido

TRY_CAST

TRY_CAST

<p>Retorna NULL se o valor não for um número; caso contrário, retorna o valor numérico como seu valor.<br>Ao usar operadores como &#x3C;, >, =, &#x3C;> deve ser seguido por um NULL</p>

TRY_CONVERT

*a ser definido

O mesmo comportamento de TRY_CAST

TRY_PARSE

TRY_CAST

O comportamento pode ser diferente ao analisar um número inteiro como data ou carimbo de data/hora.

Criptográfico

TransactSQL

Snowflake

Notas

ASYMKEY_ID

*a ser definido

ASYMKEYPROPERTY

*a ser definido

CERTENCODED

*a ser definido

CERTPRIVATEKEY

*a ser definido

DECRYPTBYASYMKEY

*a ser definido

DECRYPTBYCERT

*a ser definido

DECRYPTBYKEY

*a ser definido

DECRYPTBYKEYAUTOASYMKEY

*a ser definido

DECRYPTBYKEYAUTOCERT

*a ser definido

DECRYPTBYPASSPHRASE

_*a ser definido_​

Pode ser imitado com o uso de DENCRYPT_RAW

ENCRYPTBYASYMKEY

*a ser definido

ENCRYPTBYCERT

*a ser definido

ENCRYPTBYKEY

*a ser definido

ENCRYPTBYPASSPHRASE

*a ser definido

Pode ser imitado com o uso de ENCRYPT_RAW

HASHBYTES

MD5, SHA1, SHA2

<p>Atualmente, só há suporte para hash separado. Use o apropriado de acordo com o algoritmo necessário</p><p>MD5, é uma cadeia de caracteres codificada em hexadecimal de 32 caracteres</p><p>SHA1, tem uma cadeia de caracteres codificada em hexadecimal de 40 caracteres contendo o resumo da mensagem de 160 bits</p><p>SHA2, uma cadeia de caracteres codificada em hexadecimal contendo o resumo da mensagem de N bits SHA-2. Os tamanhos são:</p><p>224 = SHA-224</p><p>256 = SHA-256 (Padrão)</p><p>384 = SHA-384</p><p>512 = SHA-512</p>

IS_OBJECTSIGNED

*a ser definido

KEY_GUID

*a ser definido

KEY_ID

*a ser definido

KEY_NAME

*a ser definido

SIGNBYASYMKEY

*a ser definido

SIGNBYCERT

*a ser definido

SYMKEYPROPERTY

*a ser definido

VERIGYSIGNEDBYCERT

*a ser definido

Cursor

TransactSQL

Snowflake

Notas

@@CURSOR_ROWS

*a ser definido

@@FETCH_STATUS

*a ser definido

CURSOR_STATUS

*a ser definido

Tipo de dados

TransactSQL

Snowflake

Notas

DATALENGTH

OCTET_LENGTH

​O Snowflake não usa bytes fracionários, portanto, o comprimento é sempre calculado como 8 * OCTET_LENGTH

IDENT_SEED

*a ser definido

IDENT_CURRENT

*a ser definido

IDENTITY

*a ser definido

IDENT_INCR

*a ser definido

SQL_VARIANT_PROPERTY

*a ser definido

Data/Hora

TransactSQL

Snowflake

Notas

@@DATEFIRST

*a ser definido

@@LANGUAGE

*a ser definido

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

CURRENT_TIMEZONE

*a ser definido

DATEADD

DATEADD

DATEDIFF

DATEDIFF

DATEDIFF_BIG

*a ser definido

DATEFROMPARTS

DATE_FROM_PARTS

DATENAME

*a ser definido

<p>Essa função recebe dois argumentos: datepart e date. Ela retorna uma cadeia de caracteres. Aqui estão os dateparts compatíveis do TSQL para Snowflake</p><p>year, yyyyy, yyy -> DATE_PART(YEAR, «$date») quarter, qq, q -> DATE_PART(QUARTER, «$date»)<br>month, mm, m -> MONTHNAME( «$date»), você fornece apenas um nome de mês em inglês de três letras<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»), você só fornece um nome de dia de três letras em inglês<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 -> precisa de uma implementação especial para obter o deslocamento de tempo</p>

DATEPART

DATE_PART

DATETIME2FROMPARTS

*a ser definido

DATETIMEFROMPARTS

*a ser definido

​Pode ser imitado usando uma combinação de DATE_FROM_PARTS e TIME_FROM_PARTS

DATETIMEOFFSETFROMPARTS

*a ser definido

DAY

DAY

EOMONTH

*a ser definido

Pode ser imitado com o uso de LAST_DAY

FORMAT

*a ser definido

Mapeado para TO_CHAR

GETDATE

GETDATE

GETUTCDATE

*a ser definido

Pode ser imitado com o uso de CONVERT_TIMEZONE

ISDATE

*a ser definido

<p>Pode ser imitado com o uso de TRY_TO_DATE</p><p>Retorna NULL se o valor não for uma data, caso contrário, retorna o valor da data como seu.<br>Ao usar operadores como &#x3C;, >, =, &#x3C;> deve ser seguido por um NULL</p>

MONTH

MONTH

SMALLDATETIMEFROMPARTS

*a ser definido

​​Pode ser imitado usando uma combinação de DATE_FROM_PARTS e TIME_FROM_PARTS

SWITCHOFFSET

*a ser definido

​Pode ser imitado com o uso de CONVERT_TIMEZONE

SYSDATETIME

LOCALTIME

SYSDATETIMEOFFSET

*a ser definido

​Pode ser imitado com o uso de CONVERT_TIMEZONE e LOCALTIME

SYSUTCDATETIME

*a ser definido

​​Pode ser imitado com o uso de CONVERT_TIMEZONE e LOCALTIME

TIMEFROMPARTS

TIME_FROM_PARTS

TODATETIMEOFFSET

*a ser definido

​Pode ser imitado com o uso de CONVERT_TIMEZONE

YEAR

YEAR

JSON

TransactSQL

Snowflake

Notas

ISJSON

CHECK_JSON

​Esse é um «recurso de versão preliminar» no Snowflake

JSON_VALUE

*a ser definido

<p>Pode ser imitado usando</p><p>TO_VARCHAR(GET_PATH(PARSE_JSON(JSON), PATH))</p>

JSON_QUERY

*a ser definido

JSON_MODIFY

*a ser definido

Matemático

TransactSQL

Snowflake

Notas

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

Lógico

TransactSQL

Snowflake

Notas

CHOOSE

*a ser definido

Pode ser imitado com o uso de DECODE

GREATEST

GREATEST

IIF

IIF

LEAST

LEAST

NULLIF

NULLIF

Metadados

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

This transformation only occurs when it is inside a DeclareStatement.

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

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

Classificação

TransactSQL

Snowflake

Notas

DENSE_RANK

DENSE_RANK

NTILE

NTILE

RANK

RANK

ROW_NUMBER

ROW_NUMBER

Replicação

TransactSQL

Snowflake

Notas

PUBLISHINGSERVERNAME

*a ser definido

Conjunto de linhas

TransactSQL

Snowflake

Notas

OPENDATASOURCE

*a ser definido

OPENJSON

*a ser definido

QPENQUERY

*a ser definido

OPENROWSET

*a ser definido

OPENXML

OPENXML_UDF

Função definida pelo usuário usada como um comportamento equivalente no Snowflake.

Segurança

TransactSQL

Snowflake

Notas

CERTENCODED

*a ser definido

CERTPRIVATEKEY

*a ser definido

CURRENT_USER

CURRENT_USER

DATABASE_PRINCIPAL_ID

*a ser definido

HAS_PERMS_BY_NAME

*a ser definido

IS_MEMBER

*a ser definido

Alteração para a consulta INFORMATION_SCHEMA embora o cliente possa exigir a definição de novas funções

IS_ROLEMEMBER

*a ser definido

<p>Uma função semelhante no Snowflake</p><p>IS_ROLE_IN_SESSION</p>

IS_SRVROLEMEMBER

*a ser definido

LOGINPROPERTY

*a ser definido

ORIGINAL_LOGIN

*a ser definido

PERMISSIONS

*a ser definido

PWDCOMPARE

*a ser definido

PWDENCRYPT

*a ser definido

SCHEMA_ID

*a ser definido

SCHEMA_NAME

*a ser definido

SESSION_USER

*a ser definido

SUSER_ID

*a ser definido

SUSER_NAME

*a ser definido

SUSER_SID

*a ser definido

SUSER_SNAME

*a ser definido

sys.fn_builtin\_permissions

*a ser definido

sys.fn_get_audit_file

*a ser definido

sys.fn_my_permissions

*a ser definido

SYSTEM_USER

*a ser definido

USER_ID

*a ser definido

USER_NAME

*a ser definido

Mapeado para CURRENT_USER

Cadeia de caracteres

TransactSQL

Snowflake

Notas

ASCII

ASCII

CHAR

CHR, CHAR

CHARINDEX

CHARINDEX

CONCAT

CONCAT

CONCAT_WS

CONCAT_WS

COALESCE

COALESCE

DIFFERENCE

*a ser definido

FORMAT

*a ser definido

LEFT

LEFT

LEN

LEN

LOWER

LOWER

LTRIM

LTRIM

NCHAR

*a ser definido

PATINDEX

*a ser definido

Mapeado para REGEXP_INSTR

QUOTENAME

QUOTENAME_UDF

Cria um UDF para emular o mesmo comportamento da função Quotename

REPLACE

REPLACE

REPLICATE

REPEAT

REVERSE

REVERSE

RIGHT

RIGHT

RTRIM

RTRIM

SOUNDEX

SOUNDEX

SPACE

*a ser definido

STR

*a ser definido

STRING_AGG

*a ser definido

STRING_ESCAPE

*a ser definido

STRING_SPLIT

SPLIT_TO_TABLE

STUFF

*a ser definido

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

Sistema

TransactSQL

Snowflake

Notas

$PARTITION

*a ser definido

@@ERROR

*a ser definido

@@IDENTITY

*a ser definido

Se isso for necessário, eu recomendaria o uso de sequências e a captura do valor antes da inserção

@@PACK_RECEIVED

*a ser definido

@@ROWCOUNT

*a ser definido

@@TRANCOUNT

*a ser definido

BINARY_CHECKSUM

*a ser definido

CHECKSUM

*a ser definido

COMPRESS

COMPRESS

<p>A versão do Snowflake tem um argumento de método para indicar o método de compressão. Estes são os valores válidos: SNAPPY, ZLIB, ZSTD, BZ2</p><p>O nível de compressão é especificado entre parênteses e deve ser um número inteiro não negativo</p>

CONNECTIONPROPERTY

*a ser definido

CONTEXT_INFO

*a ser definido

CURRENT_REQUEST_ID

*a ser definido

CURRENT_TRANSACTION_ID

*a ser definido

DECOMPRESS

*a ser definido

O Snowflake tem duas funções para isso: DECOMPRESS_BINARY e DECOMPRESS_STRING

ERROR_LINE

*a ser definido

Será mapeado para o auxiliar ERROR_LINE. O auxiliar EXEC capturará a propriedade de linha Exception do rastreamento de pilha.

ERROR_MESSAGE

SQLERRM

ERROR_NUMBER

*a ser definido

Será mapeado para o auxiliar ERROR_NUMBER. O auxiliar EXEC capturará a propriedade de código Exception do rastreamento de pilha.

ERROR_PROCEDURE

*a ser definido

Será mapeado para o auxiliar ERROR_PROCEDURE, retirado da propriedade de procedimento arguments.callee.name

ERROR_SEVERITY

*a ser definido

ERROR_STATE

*a ser definido

O auxiliar capturará a propriedade do estado Exception

FORMATMESSAGE

FORMATEMESSAGE_UDF

Cria um UDF para emular o mesmo comportamento da função FORMATMESSAGE, mas com algumas limitações.

GET_FILESTREAM_TRANSACTION_CONTEXT

*a ser definido

GETANSINULL

*a ser definido

HOST_ID

*a ser definido

HOST_NAME

*a ser definido

ISNULL

NVL

ISNUMERIC

*a ser definido

Não há equivalente direto, mas pode ser mapeado para um UDF personalizado, retornando os mesmos valores que no TSQL.

MIN_ACTIVE_ROWVERSION

*a ser definido

NEWID

*a ser definido

​Mapeado para UUID_STRING

NEWSEQUENTIALID

*a ser definido

ROWCOUNT_BIG

*a ser definido

SESSION_CONTEXT

*a ser definido

SESSION_ID

*a ser definido

XACT_STATE

*a ser definido

Estatísticas do sistema

TransactSql

Snowflake

Notas

@@CONNECTIONS

*a ser definido

<p>O Snowflake tem uma função semelhante: LOGIN_HISTORY.</p><p>Retorna eventos de login em um intervalo de tempo especificado</p>

@@PACK_RECEIVED

*a ser definido

@@CPU_BUSY

*a ser definido

@@PACK_SENT

*a ser definido

@@TIMETICKS

*a ser definido

@@IDLE

*a ser definido

@@TOTAL_ERRORS

*a ser definido

@@IO_BUSY

*a ser definido

@@TOTAL_READ

*a ser definido

@@PACKET_ERRORS

*a ser definido

@@TOTAL_WRITE

*a ser definido

Texto e Imagem

TransactSQL

Snowflake

Notas

TEXTPTR

*a ser definido

TEXTVALID

*a ser definido

Acionador

TransactSQL

Snowflake

Notas

COLUMNS_UPDATED

*a ser definido

EVENTDATA

*a ser definido

TRIGGER_NESTLEVEL

*a ser definido

UPDATE

*a ser definido

Funções do sistema

ISNULL

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Substitui NULL pelo valor de substituição especificado. (ISNULL no Transact-SQL).

Amostra de padrão de origem

Sintaxe

ISNULL ( check_expression , replacement_value )  

Copy

Documentação do Snowflake SQL

NVL( <expr1> , <expr2> )

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

NEWID

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Cria um valor exclusivo do tipo uniqueidentifier. (NEWID no Transact-SQL).

Amostra de padrão de origem

Sintaxe

NEWID ( )  

Copy

Documentação do Snowflake SQL

UUID_STRING()

Copy

Exemplos

Aviso

Os resultados podem ser diferentes porque gera um ID exclusivo em tempo de execução

Código:

 SELECT NEWID ( ) AS ID;
Copy

Resultado:

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

Copy

Código:

 SELECT
UUID_STRING( ) AS ID;
Copy

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

NULLIF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um valor nulo se as duas expressões especificadas forem iguais.

Amostra de padrão de origem

Sintaxe

NULLIF ( check_expression , replacement_value )  

Copy

Documentação do Snowflake SQL

NULLIF( <expr1> , <expr2> )

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

@@ROWCOUNT

Applies to
  • [x] SQL Server

Descrição

Retorna o número de linhas afetadas pela última instrução. (@@ROWCOUNT no Transact-SQL).

Amostra de padrão de origem

Sintaxe

@@ROWCOUNT

Copy

Documentação do Snowflake SQL

SQLROWCOUNT

Copy

Exemplos

Código:

 CREATE TABLE table1
(
    column1 INT
);

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

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

    select @addCount
END
;
GO

EXEC procedure1;
Copy

Resultado:

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

Copy

Código:

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

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

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

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

CALL procedure1();
Copy

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

FORMATMESSAGE

Applies to
  • [x] SQL Server

Descrição

Constrói uma mensagem a partir de uma mensagem existente em sys.messages ou de uma cadeia de caracteres fornecida. (FORMATMESSAGE no Transact-SQL).

Amostra de padrão de origem

Como o Snowflake não oferece suporte à função FORMATMESSAGE, a função FORMATMESSAGE_UDF é adicionada para simular seu comportamento.

Sintaxe

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

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

  1. SSC-FDM-TS0008: a função FORMATMESSAGE foi convertida para UDF.

FORMATMESSAGE_UDF

O Snowflake não tem uma função com a funcionalidade de FORMATMESSAGE. O SnowConvert gera o seguinte Python UDF para emular o comportamento de FORMATMESSAGE.

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

Este UDF pode não funcionar corretamente em alguns casos:

  • O uso do espaço reservado %I64d gerará um erro.

  • Se o número de argumentos de substituição for diferente do número de espaços reservados, ocorrerá um erro.

  • Alguns espaços reservados sem sinal, como %u ou %X, não se comportarão adequadamente ao formatar o valor.

  • Ele não pode lidar com message_ids.

Funções de cadeia de caracteres

CHAR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um caractere de byte único com o número inteiro enviado como parâmetro na tabela ASCII (CHAR no Transact-SQL).

Amostra de padrão de origem

Sintaxe

CHAR( expression )

Copy

Documentação completa do Snowflake SQL

{CHR | CHAR} ( <input> )

Copy

Documentação completa do JavaScript

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

Copy

Exemplos

Entrada:

 SELECT CHAR(170) AS SMALLEST_A
Copy

Saída:

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

Copy

Código:

 SELECT
CHAR(170) AS SMALLEST_A;
Copy

Resultado:

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

Copy

Código:

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

SELECT GET_CHAR(170) SMALLEST_A;
Copy

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

CHARINDEX

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o índice da primeira ocorrência do valor especificado enviado como parâmetro quando ele corresponde (CHARINDEX no Transact-SQL).

Amostra de padrão de origem

Sintaxe

CHARINDEX( expression_to_find, expression_to_search [, start] )

Copy

Documentação completa do Snowflake SQL

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

Copy

Documentação completa do JavaScript

String.indexOf( search_value [, index] )

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Nota

Os índices no Transact começam em 1, em vez do JavaScript que começa em 0.

Código:

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

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

COALESCE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Avalia os argumentos em ordem e retorna o valor atual da primeira expressão que inicialmente não é avaliada como NULL. Por exemplo, SELECT COALESCE(NULL, NULL, “third_value”, “fourth_value”); retorna o terceiro valor porque o terceiro valor é o primeiro valor que não é nulo. (COALESCE no Transact-SQL).

Amostra de padrão de origem

Sintaxe

COALESCE ( expression [ ,...n ] )   

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

CONCAT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Faz uma concatenação de valores de cadeia de caracteres com outros. (CONCAT no Transact-SQL).

Amostra de padrão de origem

Sintaxe

CONCAT ( string_value1, string_value2 [, string_valueN ] )  

Copy

Documentação completa do Snowflake SQL

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

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

Copy

Documentação completa do JavaScript

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

Exemplos

Código:

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

Saída:

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

Copy

Código:

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

Saída:

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

Copy

Código:

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

\ Saída:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

LEFT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna a parte direita de uma cadeia de caracteres com o número especificado de caracteres. (RIGHT no Transact-SQL).

Amostra de padrão de origem

Sintaxe

LEFT ( character_expression , integer_expression )  

Copy

Documentação completa do Snowflake SQL

LEFT ( <expr> , <length_expr> )

Copy

Função usada para emular o comportamento

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

Exemplos

Código:

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

Saída:

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

Copy

Código:

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

Saída:

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

Copy

Código:

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

\ Saída:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

LEN

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o comprimento de uma cadeia de caracteres (LEN no Transact-SQL).

Amostra de padrão de origem

Sintaxe

LEN( string_expression )

Copy

Documentação completa do Snowflake SQL

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

Copy

Documentação completa do JavaScriptSQL

 string.length
Copy

Exemplos

Código:

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

Saída:

LEN|
---+
 11|

Copy

Código:

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

Saída:

LEN|
---+
 11|

Copy

Código:

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

\ Saída:

LEN|
---+
 11|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

LOWER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Converte uma cadeia de caracteres em minúsculas (LOWER no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 LOWER ( character_expression )  
Copy

Documentação completa do Snowflake SQL

 LOWER( <expr> )
Copy

Documentação completa do JavaScriptSQL

 String.toLowerCase( )
Copy

Exemplos

Código:

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

Saída:

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

Copy

Código:

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

Saída:

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

Copy

Código:

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

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

\ Saída:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

NCHAR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o caractere UNICODE de um número inteiro enviado como parâmetro (NCHAR no Transact-SQL).

Amostra de padrão de origem

Sintaxe

NCHAR( expression )

Copy
Argumentos

expression: Expressão de número inteiro.

Tipo de retorno

Valor da cadeia de caracteres, que depende da entrada recebida.

Exemplos

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

Copy

Nota

A equivalência dessa função no JavaScript está documentada em CHAR.

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

REPLACE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Substitui todas as ocorrências de um valor de cadeia de caracteres especificado por outro valor de cadeia de caracteres. (REPLACE no Transact-SQL).

Amostra de padrão de origem

Sintaxe

REPLACE ( string_expression , string_pattern , string_replacement )  

Copy

Documentação completa do Snowflake SQL

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

Copy
 String.replace( pattern, new_expression)
Copy

Exemplos

Código:

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

Saída:

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

Copy

Código:

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

Saída:

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

Copy

Código:

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

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

\ Saída:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

REPLICATE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Replica um valor de cadeia de caracteres um número especificado de vezes (REPLICATE no Transact-SQL).

Amostra de padrão de origem

Sintaxe

REPLICATE( string_expression, number_expression )

Copy

Documentação do Snowflake SQL

REPEAT(<input>, <n>)

Copy

Documentação do JavaScript

String.repeat( number_expression )

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Código:

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

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

RTRIM

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna uma expressão de caractere depois de remover os espaços em branco à esquerda (RTRIM no Transact-SQL).

Amostra de padrão de origem

Sintaxe

RTRIM( string_expression )

Copy

Documentação completa do Snowflake SQL

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

Copy

Função personalizada usada para emular o comportamento

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

Exemplos

Entrada:

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

Saída:

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

Copy

Código:

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

Resultado:

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

Copy

Código:

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

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SPACE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um número de ocorrências de espaços em branco (SPACE no Transact-SQL).

Amostra de padrão de origem

Sintaxe

SPACE ( integer_expression )  

Copy

Documentação completa do Snowflake SQL

SPACE(<n>)

Copy

Função personalizada usada para emular o comportamento

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

Exemplos

Entrada:

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

Saída:

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

Copy

Entrada:

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

Saída:

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

Copy

Entrada:

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

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

Saída:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SUBSTRING

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna uma expressão de caractere depois de remover os espaços em branco à esquerda (RTRIM no Transact-SQL).

Amostra de padrão de origem

Sintaxe

SUBSTRING( string_expression, start, length )

Copy

Documentação completa do Snowflake SQL

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

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

Copy

Função personalizada usada para emular o comportamento

 string.substring( indexA [, indexB])
Copy

Exemplos

Entrada:

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

Saída:

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

Copy

Código:

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

Resultado:

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

Copy

Código:

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

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

UPPER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Converte uma cadeia de caracteres em maiúsculas (UPPER no Transact-SQL).

Amostra de padrão de origem

Sintaxe

UPPER( string_expression ) 

Copy

Documentação completa do Snowflake SQL

UPPER( <expr> )

Copy

Documentação completa do JavaScriptSQL

 String.toUpperCase( )
Copy

Exemplos

Código:

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

Saída:

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

Copy

Código:

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

Saída:

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

Copy

Código:

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

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

\ Saída:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ASCII

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o código numérico de um caractere na tabela ASCII (ASCII no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 ASCII( expression )
Copy
Argumentos

expression: expressão VARCVHAR ou CHAR.

Tipo de retorno

INT.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ASCII no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna o código numérico de um caractere na tabela ASCII (Documentação da funçãoJavaScript charCodeAt).

Amostra de padrão de origem

Sintaxe

 string.charCodeAt( [index] )
Copy
Argumentos

index(opcional): Índice da cadeia de caracteres para obter o caractere e retornar seu número de código na tabela ASCII. Se esse parâmetro não for especificado, será considerado 0 como padrão. \

Tipo de retorno

Int.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

QUOTENAME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna uma string delimitada por aspas (QUOTENAME no Transact-SQL).

Amostra de padrão de origem

Sintaxe

QUOTENAME( string_expression [, quote_character])

Copy
Argumentos

string_expression: Cadeia de caracteres a ser delimitada.

quote_character: um caractere para delimitar a cadeia de caracteres.

Tipo de retorno

NVARCHAR(258). Nulo se a aspa for diferente de (“), ([]), («), ( () ), ( >< ), ({}) ou (`).

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

QUOTENAME no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Infelizmente, essa função não está disponível no JavaScript, mas pode ser implementada usando funções predefinidas.

Amostra de padrão de origem

Exemplo de implementação

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

string: Expressão de cadeia de caracteres para delimitar.

quote: Aspa a ser usada como delimitador.

Tipo de retorno

Cadeia de caracteres.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

CONCAT_WS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Faz uma concatenação de valores de cadeia de caracteres com outros usando um separador entre eles (CONCAT_WS no Transact-SQL).

Amostra de padrão de origem

Sintaxe

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

Copy
Argumentos

separator: Separador para junção.

expression1, ... ,expressionN: Expressão a ser encontrada em uma cadeia de caracteres.

Tipo de retorno

Valor da cadeia de caracteres, depende da entrada recebida.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

Join no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Concatena os argumentos da cadeia de caracteres à cadeia de caracteres de chamada usando um separador (Documentação da função JavaScript Join).

Amostra de padrão de origem

Sintaxe

 Array.join( separator )
Copy
Argumentos

separator: Caractere para junção.

Tipo de retorno

String.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SOUNDEX

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um código de quatro caracteres para avaliar a similaridade de duas cadeias de caracteres (SOUNDEX no Transact-SQL).

Amostra de padrão de origem

Sintaxe

SOUNDEX( string_expression )

Copy
Argumentos

string_expression: Expressão de cadeia de caracteres para reverter.

Tipo de retorno

O mesmo tipo de dados da expressão de cadeia de caracteres enviada como parâmetro.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SOUNDEX no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Infelizmente, o JavaScript não oferece um método que execute o algoritmo SOUNDEX, mas ele pode ser implementado manualmente.

Amostra de padrão de origem

Exemplo de implementação

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

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

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

word: Expressão de cadeia de caracteres para obter sua equivalência SOUNDEX.

Tipo de retorno

Cadeia de caracteres.

Exemplos

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

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

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

REVERSE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Inverte uma cadeia de caracteres (REVERSE no Transact-SQL).

Amostra de padrão de origem

Sintaxe

REVERSE( string_expression )

Copy
Argumentos

string_expression: Expressão de cadeia de caracteres para reverter.

Tipo de retorno

O mesmo tipo de dados da expressão de cadeia de caracteres enviada como parâmetro.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

reverse no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Infelizmente, essa função não está disponível no JavaScript, mas pode ser implementada usando funções predefinidas.

Amostra de padrão de origem

Exemplo de implementação

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

string: Expressão de cadeia de caracteres para reverter.

Tipo de retorno

Cadeia de caracteres.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

STRING_ESCAPE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Escapa caracteres especiais em textos e retorna o texto com os caracteres escapados. (STRING_ESCAPE no Transact-SQL).

Amostra de padrão de origem

Sintaxe

STRING_ESCAPE( text, type )

Copy
Argumentos

text: Texto para escapar caracteres.

type: Tipo de formato para escapar caracteres. Atualmente, JSON é o único formato suportado.

Tipo de retorno

VARCHAR.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

stringify no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Converte um objeto em um formato de cadeia de caracteres JSON (Documentação da função JavaScript stringify).

Amostra de padrão de origem

Sintaxe

 JSON.stringify( value )
Copy
Argumentos

value: Expressão de objeto a ser convertida.

Tipo de retorno

Cadeia de caracteres.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

TRIM

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna uma expressão de caractere sem espaços em branco (TRIM no Transact-SQL).

Amostra de padrão de origem

Sintaxe

TRIM( string_expression )

Copy
Argumentos

string_expression: Expressões de cadeia de caracteres a serem convertidas.

Tipo de retorno

VARCHAR ou NVARCHAR

Exemplos

Código:

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

Saída:

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

Copy

Código:

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

Saída:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

trim no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Substitui as ocorrências de um padrão usando um novo padrão enviado como parâmetro (Documentação da função JavaScript Replace).

Amostra de padrão de origem

Sintaxe

 String.trim( )
Copy
Argumentos

Essa função não recebe nenhum parâmetro.

Tipo de retorno

Cadeia de caracteres.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

DIFFERENCE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um número inteiro que mede a diferença entre duas cadeias de caracteres usando o algoritmo SOUNDEX (DIFFERENCE no Transact-SQL). \ Conta os caracteres comuns das cadeias de caracteres resultantes da execução do algoritmo SOUNDEX.

Amostra de padrão de origem

Sintaxe

DIFFERENCE( expression1, expression1 )

Copy
Argumentos

expression1, expression2: Expressões de cadeia de caracteres a serem comparadas.

Tipo de retorno

Int.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

DIFFERENCE no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Infelizmente, essa funcionalidade não está disponível no JS, mas pode ser implementada facilmente.

Nota

Essa função requer a implementação do algoritmo SOUNDEX.

Amostra de padrão de origem

Exemplo de implementação

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

strA, strB: Expressões de cadeia de caracteres resultantes da execução do algoritmo SOUNDEX.

Tipo de retorno

String.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

FORMAT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um valor formatado com o formato especificado e a cultura opcional (FORMAT no Transact-SQL).

Amostra de padrão de origem

Sintaxe

FORMAT( value, format [, culture])

Copy
Argumentos

value: Expressões de cadeia de caracteres para fornecer o formato.

format: Formato desejado.

culture (opcional): argumento NVarchar que especifica a cultura. Se não for especificado, usa as linguagens da sessão atual.

Tipo de retorno

NULL se o parâmetro de cultura for inválido; caso contrário, ele segue os próximos tipos de dados:

Categoria

Tipo .NET

Numérico

bigint

Int64

Numérico

int

Int32

Numérico

smallint

Int16

Numérico

tinyint

Byte

Numérico

decimal

SqlDecimal

Numérico

numeric

SqlDecimal

Numérico

float

Double

Numérico

real

Single

Numérico

smallmoney

Decimal

Numérico

money

Decimal

Data e hora

date

DateTime

Data e hora

time

TimeSpan

Data e hora

datetime

DateTime

Data e hora

smalldatetime

DateTime

Data e hora

datetime2

DateTime

Data e hora

datetimeoffset

DateTimeOffset

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

FORMAT no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Há diferentes funções para formatar valores de data e inteiros em JavaScript. Infelizmente, essas funcionalidades não estão integradas em um único método.

Valores DateTime

Sintaxe

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

locales (Opcional): Expressão de cadeia de caracteres do formato a ser aplicado.

options (Opcional): Objeto com diferentes propriedades compatíveis para formatos de expressões numéricas (Documentação da função JavaScript NumberFormat).

value: Expressão numérica a ser formatada.

Tipo de retorno

String.

Valores Numeric

Sintaxe

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

locales (Opcional): Expressão de cadeia de caracteres do formato a ser aplicado.

options (Opcional): Objeto com diferentes propriedades compatíveis para formatos de expressões numéricas (Documentação da função JavaScript NumberFormat).

value: Expressão numérica a ser formatada.

Tipo de retorno

String.

Exemplos

DateTime

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

Copy

Numérico

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

PATINDEX

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna a posição inicial da primeira ocorrência de um padrão em uma expressão especificada (PATINDEX no Transact-SQL).

Amostra de padrão de origem

Sintaxe

PATINDEX( pattern, expression )

Copy
Argumentos

pattern: Padrão a encontrar.

expression: Expressão a ser pesquisada.

Tipo de retorno

Inteiro. Retorna 0 se o padrão não for encontrado.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

search no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Localiza o índice de um padrão usando REGEX (Documentação da função JavaScript search).

Amostra de padrão de origem

Sintaxe

 String.search( regex )
Copy
Argumentos

regex: Expressão regular que corresponde ao padrão desejado.

Tipo de retorno

Inteiro. Se o padrão não corresponder a nenhuma parte da cadeia de caracteres, retornará -1.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

STR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna dados de caracteres convertidos de dados numéricos. Os dados de caracteres são justificados à direita, com um comprimento e uma precisão decimal especificados. (STR no Transact-SQL).

Amostra de padrão de origem

Sintaxe

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

numeric_expression: Expressão flutuante com um ponto decimal.

length (Opcional): Comprimento que a expressão retornada terá, incluindo notação de ponto, partes decimais e flutuantes.

decimal(opcional): É o número de casas à direita do ponto decimal.

Tipo de retorno

VARCHAR.

Exemplos

Entrada:

 /* 1 */
SELECT STR(123.5);

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

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

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

Saída:

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

Copy

Entrada:

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

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

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

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

Saída:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

STR no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Infelizmente, essa funcionalidade não está disponível no JS, mas pode ser implementada facilmente usando as funções predefinidas para cadeia de caracteres.

Amostra de padrão de origem

Exemplo de implementação

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

number: Expressão flutuante com um ponto decimal.

max_length: Comprimento que a expressão retornada terá, incluindo notação de ponto, partes decimais e flutuantes.

float_precision: É o número de casas à direita do ponto decimal.

Tipo de retorno

Cadeia de caracteres.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

LTRIM

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna uma expressão de caractere depois de remover os espaços em branco à esquerda (LTRIM no Transact-SQL).

Amostra de padrão de origem

Sintaxe

LTRIM( string_expression )

Copy
Argumentos

string_expression: Expressões de cadeia de caracteres a serem convertidas.

Tipo de retorno

VARCHAR ou NVARCHAR

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

LTRIM no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Infelizmente, essa função não está disponível no JavaScript, mas pode ser implementada usando expressões regulares.

Amostra de padrão de origem

Exemplo de implementação

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

string: Expressão de cadeia de caracteres para remover espaços em branco.

Tipo de retorno

Cadeia de caracteres.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

Funções de classificação

Esta seção descreve os equivalentes funcionais das funções de classificação no Transact-SQL para o código do Snowflake SQL e JavaScript, orientados para seu uso em procedimentos armazenados do SnowFlake.

DENSE_RANK

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Essa função retorna a classificação de cada linha em uma partição de conjunto de resultados, sem lacunas nos valores de classificação. A classificação de uma linha específica é um mais o número de valores de classificação distintos que vêm antes dessa linha específica. (DENSE_RANK no Transact-SQL).

Amostra de padrão de origem

Sintaxe

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

Documentação do Snowflake SQL

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

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

EWIs relacionados

  • SSC-EWI-0001: Token não reconhecido na linha do código-fonte.

RANK

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna a classificação de cada linha dentro da partição de um conjunto de resultados. A classificação de uma linha é um mais o número de classificações que vêm antes da linha em questão. (RANK no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 RANK ( ) OVER ( [ partition_by_clause ] order_by_clause )  
Copy

Documentação do Snowflake SQL

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

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

EWIs relacionados

  • SSC-EWI-0001: Token não reconhecido na linha do código-fonte.

ROW_NUMBER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Numera a saída de um conjunto de resultados. Mais especificamente, retorna o número sequencial de uma linha em uma partição de um conjunto de resultados, começando em 1 para a primeira linha em cada partição. (ROW_NUMBER no Transact-SQL).

Amostra de padrão de origem

Sintaxe

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

Documentação completa do Snowflake SQL

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

Exemplos

Código:

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

Saída:

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

Copy

Código:

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

Saída:

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

Copy

EWIs relacionados

  • SSC-EWI-0001: Token não reconhecido na linha do código-fonte.

Funções lógicas

IIF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um de dois valores, dependendo do fato de a expressão booliana ser avaliada como verdadeira ou falsa. (IIF no Transact-SQL).

Amostra de padrão de origem

Sintaxe

IIF( boolean_expression, true_value, false_value )

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

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

Resultado:

RESULT|
------+
 FALSE|

Copy

Código:

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

Resultado:

RESULT|
------+
 FALSE|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

Funções XML

Consulta

Applies to
  • [x] SQL Server

Aviso

Essa transformação será realizada no futuro

Descrição

Especifica um XQuery em relação a uma instância do tipo de dados xml. O resultado é do tipo xml. O método retorna uma instância de XML não tipado. (Query() no Transact-SQL)

Amostra de padrões de origem

O exemplo a seguir detalha a transformação de .query( )

SQL Server

 CREATE TABLE xml_demo(object_col XML);

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

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

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

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

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

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs relacionados

  1. SSC-EWI-0036: Tipo de dados convertido em outro tipo de dados.

Valor

Applies to
  • [x] SQL Server

Aviso

Essa transformação será realizada no futuro

Descrição

Executa um XQuery em relação ao XML e retorna um valor do tipo SQL. Esse método retorna um valor escalar. (value() no Transact-SQL).

Amostra de padrões de origem

O exemplo a seguir detalha a transformação de .value( )

SQL Server

 CREATE TABLE xml_demo(object_col XML);

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

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

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

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

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

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs relacionados

  1. SSC-EWI-0036: Tipo de dados convertido em outro tipo de dados.

Funções de agregação

COUNT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Essa função retorna o número de itens encontrados em um grupo. COUNT funciona como a função COUNT_BIG. Essas funções diferem apenas nos tipos de dados de seus valores de retorno. COUNT sempre retorna um valor de tipo de dados int. COUNT_BIG sempre retorna um valor de tipo de dados bigint. (COUNT no Transact-SQL).

Amostra de padrão de origem

Sintaxe

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

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

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

Resultado:

TOTAL|
-----+
  290|

Copy

Código:

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

Resultado:

TOTAL|
-----+
  290|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

COUNT_BIG

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Essa função retorna o número de itens encontrados em um grupo. COUNT_BIG opera como a função COUNT. Essas funções diferem apenas nos tipos de dados de seus valores de retorno. COUNT_BIG sempre retorna um valor de tipo de dados bigint. COUNT sempre retorna um valor de tipo de dados int. (COUNT_BIG no Transact-SQL).

Amostra de padrão de origem

Sintaxe

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

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

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

Resultado:

TOTAL|
-----+
  290|

Copy

Código:

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

Resultado:

TOTAL|
-----+
  290|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SUM

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Retorna a soma de todos os valores, ou somente os valores DISTINCT, na expressão. SUM pode ser usado somente com colunas numéricas. Os valores nulos são ignorados. (SUM no Transact-SQL).

Amostra de padrão de origem

Sintaxe

SUM ( [ ALL | DISTINCT ] expression )  

Copy

Documentação do Snowflake SQL

SUM( [ DISTINCT ] <expr1> )

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

UDFs personalizados do SnowConvert

Descrição

Algumas funções ou comportamentos do Transact-SQL podem não estar disponíveis ou podem se comportar de forma diferente no Snowflake. Para minimizar essas diferenças, algumas funções são substituídas por UDFs personalizados do SnowConvert.

Esses UDFs são criados automaticamente durante a migração, na pasta UDF Helper, dentro da pasta Output. Há um arquivo por UDF personalizado.

OPENXML UDF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Esse UDF personalizado é adicionado para processar uma visualização de conjunto de linhas em um documento XML. Isso seria usado para declarações, pois funciona como um provedor de conjunto de linhas.

Parâmetros opcionais e diferentes tipos de nós não são compatíveis com esta versão de UDF. O nó de elemento é processado por padrão.

Sobrecargas personalizadas de UDF

Parâmetros

  1. XML: Um VARCHAR que representa o conteúdo legível do XML.

  2. PATH: Um varchar que contém o padrão dos nós a serem processados como linhas.

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


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

Transact-SQL

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

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

Copy
Snowflake

Nota

O exemplo a seguir é isolado em um procedimento armazenado porque as variáveis de ambiente suportam apenas 256 bytes de armazenamento e o código de demonstração XML usa mais do que esse limite.

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

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

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs relacionados

  1. SSC-EWI-TS0075: Procedimento incorporado não suportado.

STR UDF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Esse UDF personalizados converte dados numéricos em dados de caracteres.

Sobrecargas personalizadas de UDF

Parâmetros

  1. FLOAT_EXPR: Uma expressão numérica a ser convertida em varchar.

  2. FORMAT: Uma expressão varchar com o comprimento e o número de casas decimais do varchar resultante. Esse formato é gerado automaticamente no SnowConvert.

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

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

A

B

C

D

124

**

123

123,5

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

Problemas conhecidos

Não foram encontrados problemas.

EWIs relacionados

Sem EWIs relacionados.

SWITCHOFFSET_UDF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Esse UDF personalizado é adicionado para retornar um valor datetimeoffset que é alterado do deslocamento de fuso horário armazenado para um novo deslocamento de fuso horário especificado.

Sobrecargas personalizadas de UDF

Parâmetros

  1. source_timestamp: Um TIMESTAMP_TZ que pode ser resolvido para um valor datetimeoffset(n).

  2. target_tz: Um varchar que representa o deslocamento do fuso horário

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

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

Transact-SQL

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs relacionados

Sem EWIs relacionados.

Funções de metadados

DB_NAME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna o nome de um banco de dados especificado.(DB_NAME no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 DB_NAME ( [ database_id ] )  
Copy

Documentação do Snowflake SQL

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

Exemplos

Código:

 SELECT DB_NAME();
Copy

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

1. A função CURRENT_DATABASE tem um comportamento diferente em determinados casos

A função DB_NAME pode ser chamada com o parâmetro database_id, que retorna o nome do banco de dados especificado. Sem parâmetros, a função retorna o nome do banco de dados atual. No entanto, o SnowFlake não é compatível com esse parâmetro e a função CURRENT_DATABASE sempre retornará o nome do banco de dados atual.

EWIs relacionados

  1. SSC-FDM-TS0010: A função CURRENT_DATABASE tem comportamento diferente em determinados casos.

OBJECT_ID

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna o número de identificação do objeto do banco de dados de um objeto com escopo de esquema.(OBJECT_ID no Transact-SQL).

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

Amostra de padrões da origem

1. Default transformation

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

2. Unknown database

Código:

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

Código:

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

3. Different object names

Código:

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

Código:

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

Problemas conhecidos

1. A função OBJECT_ID_UDF tem um comportamento diferente em determinados casos

OBJECT_ID retorna o número de identificação do objeto, mas OBJECT_ID_UDF retorna um valor booliano, de modo que eles são equivalentes somente quando OBJECT_ID é usado com a condição not null.

EWIs relacionados

Funções analíticas

LAG

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Acessa os dados de uma linha anterior no mesmo conjunto de resultados sem o uso de um self-join a partir do SQL Server 2012 (11.x). LAG fornece acesso a uma linha em um determinado deslocamento físico que vem antes da linha atual. Use essa função analítica em uma instrução SELECT para comparar os valores da linha atual com os valores de uma linha anterior.

Amostra de padrão de origem

Sintaxe

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

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

Funções de tipo de dados

DATALENGTH

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna o número de bytes usados para representar qualquer expressão. (DATALENGTH no Transact-SQL).

Amostra de padrão de origem

Sintaxe

DATALENGTH ( expression )   

Copy

Documentação do Snowflake SQL

OCTET_LENGTH(<string_or_binary>)

Copy

Exemplos

Código:

 SELECT DATALENGTH('SomeString') AS SIZE;
Copy

Resultado:

SIZE|
----+
  10|

Copy

Código:

 SELECT OCTET_LENGTH('SomeString') AS SIZE;
Copy

Resultado:

SIZE|
----+
  10|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

Funções matemáticas

ABS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Uma função matemática que retorna o valor absoluto (positivo) da expressão numérica especificada. (ABS altera valores negativos para valores positivos. ABS não tem efeito sobre valores zero ou positivos) (ABS no Transact-SQL).

Amostra de padrão de origem

Sintaxe

ABS( expression )

Copy

Documentação do Snowflake SQL

ABS( <num_expr> )

Copy

Documentação completa do JavaScript

Math.abs( expression )

Copy

Exemplos

Código:

 SELECT ABS(-5);
Copy

Resultado:

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

Copy

Código:

 SELECT ABS(-5);
Copy

Resultado:

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

Copy

Código:

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

\ Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

AVG

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Nota

A seção Helpers Code do SnowConvert é omitida.

Essa função retorna a média dos valores em um grupo. Ela ignora valores nulos. (AVG no Transact-SQL).

Amostra de padrão de origem

Sintaxe

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

Copy

Documentação do Snowflake SQL

AVG( [ DISTINCT ] <expr1> )

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

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

CEILING

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Uma função matemática que retorna o menor número inteiro maior/igual ao número enviado como parâmetro (CEILING no Transact-SQL).

Amostra de padrão de origem

Sintaxe

CEILING( expression )

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

Copy
 Math.ceil( expression )
Copy

Exemplos

Código:

SELECT CEILING(642.20);
Copy

\ Resultado:

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

Copy

Código:

 SELECT CEIL(642.20);
Copy

\ Resultado:

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

Copy

Código:

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

\ Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

FLOOR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o maior número inteiro menor ou igual à expressão numérica especificada. (FLOOR no Transact-SQL).

Amostra de padrão de origem

Sintaxe

FLOOR ( numeric_expression )  

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

 SELECT FLOOR (124.87) AS FLOOR;
Copy

Resultado:

FLOOR|
-----+
  124|

Copy

Código:

 SELECT FLOOR (124.87) AS FLOOR;
Copy

Resultado:

FLOOR|
-----+
  124|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

POWER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o valor da expressão especificada para a potência especificada. (POWER no Transact-SQL).

Amostra de padrão de origem

Sintaxe

POWER ( float_expression , y )  

Copy

Documentação do Snowflake SQL

POW(x, y)

POWER (x, y)

Copy

Exemplos

Código:

 SELECT POWER(2, 10.0) AS IntegerResult
Copy

Resultado:

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

Copy

Código:

 SELECT POWER(2, 10.0) AS IntegerResult;
Copy

Resultado:

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

Copy

Documentação relacionada

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ROUND

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um valor numérico, arredondado para o comprimento ou precisão especificados. (ROUND no Transact-SQL).

Amostra de padrão de origem

Sintaxe

ROUND ( numeric_expression , length [ ,function ] )  

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Documentação relacionada

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SQRT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna a raiz quadrada do valor de float especificado. (SQRT no Transact-SQL).

Amostra de padrão de origem

Sintaxe

SQRT ( float_expression )  

Copy

Documentação do Snowflake SQL

SQRT(expr)

Copy

Exemplos

Código:

 SELECT SQRT(25) AS RESULT;
Copy

Resultado:

RESULT|
------+
   5.0|

Copy

Código:

 SELECT SQRT(25) AS RESULT;
Copy

Resultado:

RESULT|
------+
   5.0|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SQUARE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o quadrado do valor float especificado. (SQUARE no Transact-SQL).

Amostra de padrão de origem

Sintaxe

SQUARE ( float_expression )  

Copy

Documentação do Snowflake SQL

SQUARE(expr)

Copy

Exemplos

Código:

 SELECT SQUARE (5) AS SQUARE;
Copy

Resultado:

SQUARE|
------+
  25.0|

Copy

Código:

 SELECT SQUARE (5) AS SQUARE;
Copy

Resultado:

SQUARE|
------+
    25|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

STDEV

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Retorna o desvio padrão estatístico de todos os valores na expressão especificada. (STDEV no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 STDEV ( [ ALL | DISTINCT ] expression )  
Copy

Documentação do Snowflake SQL

 STDDEV( [ DISTINCT ] <expression_1> )
Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

STDEVP

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Retorna o desvio padrão estatístico da população para todos os valores na expressão especificada. (STDVEP no Transact-SQL).

Amostra de padrão de origem

Sintaxe

STDEVP ( [ ALL | DISTINCT ] expression )  

Copy

Documentação do Snowflake SQL

STDDEV_POP( [ DISTINCT ] expression_1)

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

VAR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Nota

Algumas partes do código de saída foram omitidas por motivos de clareza.

Descrição

Retorna a variância estatística de todos os valores na expressão especificada. (VAR no Transact-SQL).

Amostra de padrão de origem

Sintaxe

VAR ( [ ALL | DISTINCT ] expression )  

Copy
VAR_SAMP( [DISTINCT] <expr1> )

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

POWER

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o valor da expressão especificada para uma potência específica.\ (POWER no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 POWER( base, exp )
Copy
Argumentos

base: Base do número, deve ser uma expressão float.\ exp: Potência à qual você eleva a base.

Tipo de retorno

O tipo de retorno depende da expressão de entrada:

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

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

POW no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna a base da potência do expoente.\ (Documentação da função JavaScript POW).

Amostra de padrão de origem

Sintaxe

 Math.pow( base, exp )
Copy
Argumentos

base: Base do número, deve ser uma expressão float.\ exp: Potência à qual você eleva a base.

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ACOS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função que retorna o arco-seno em radianos do número enviado como parâmetro (ACOS no Transact-SQL).

Matematicamente, o arco-seno é a função inversa do cosseno, resultando na seguinte definição:\ $$y = cos^{-1} \Leftrightarrow x = cos(y)$$

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

Amostra de padrão de origem

Sintaxe

 ACOS ( expression )
Copy
Argumentos

expressão: Expressão de float numérico, em que a expressão está em $$[-1,1]$$.

Tipo de retorno

Expressão numérica de flutuação entre 0 e π. Se a expressão numérica enviada pelo parâmetro estiver fora do domínio $$[-1, 1]$$, o mecanismo de banco de dados emitirá um erro.

Exemplos

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


Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ACOS no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função que retorna o arco-seno de um número especificado\ (Documentação da função JavaScript ACOS).

Amostra de padrão de origem

Sintaxe

 Math.acos( expression )
Copy
Argumentos

expression: Expressão numérica, em que a expressão está em $$[-1,1]$$.

Tipo de retorno

Expressão numérica entre 0 e π. Se a expressão numérica enviada pelo parâmetro estiver fora do intervalo do arco-seno em radianos $$[-1, 1]$$, a função retornará NaN.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ASIN

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função que retorna o arco-seno em radianos do número enviado como parâmetro (ASIN no Transact-SQL).

O arco-seno é a função inversa do seno, resumida na definição a seguir:\ $$y = sin^{-1} \Leftrightarrow x = sin(x)$$

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

Amostra de padrão de origem

Sintaxe

 ASIN( expression )
Copy
Argumentos

expressão: Expressão de float numérico, em que a expressão está em $$[-1,1]$$.

Tipo de retorno

Expressão numérica flutuante entre $$-\frac{\pi}{2}$$ e $$\frac{\pi}{2}$$. Se a expressão numérica enviada pelo parâmetro não estiver em $$[-1, 1]$$, o mecanismo de banco de dados emitirá um erro.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ASIN no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função que retorna o arco-seno de um número especificado\ (Documentação da função JavaScript ASIN).

Amostra de padrão de origem

Sintaxe

 Math.asin( expression )
Copy
Argumentos

expression: Expressão numérica, em que a expressão está em $$[-1,1]$$.

Tipo de retorno

Expressão numérica entre $$-\frac{\pi}{2}$$ e $$\frac{\pi}{2}$$. Se a expressão numérica enviada pelo parâmetro estiver fora do domínio do arco-seno $$[-1, 1]$$, a função retornará NaN.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

COS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função que retorna o cosseno do ângulo enviado por meio de parâmetros (deve ser medido em radianos) (COS no Transact-SQL).

O cosseno é definido como:\ $$y = cos(x)$$\ Onde:\ - Range: $$-1\leqslant y \leqslant 1$$\ - Domain: $$\mathbb{R}$$

Amostra de padrão de origem

Sintaxe

 COS( expression )
Copy
Argumentos

expression: Expressão numérica float, em que a expressão está em $$\mathbb{R}$$.

Tipo de retorno

Expressão numérica flutuante em $$[-1, 1]$$.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

COS no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função estática que retorna o cosseno de um ângulo em radianos\ (Documentação da funçãoJavaScript COS).

Amostra de padrão de origem

Sintaxe

 Math.cos( expression )
Copy
Argumentos

expression: Expressões numéricas.

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

COT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna a cotangente do ângulo em radianos enviada por meio de parâmetros (COT no Transact-SQL).

O cosseno é definido como:\ $$cot(x) = \frac{cos(x)}{sin(x)}$$ ou $$cot(x) = \frac{1}{tan(x)}$$\ Para calcular o cosseno, o parâmetro deve estar em conformidade com as restrições das funções seno e cosseno.

Amostra de padrão de origem

Sintaxe

 COT( expression )
Copy
Argumentos

expression: Expressão numérica float, em que a expressão está em $$\mathbb{R}-{sin(expression)=0 \wedge tan(expression) =0}$$.

Tipo de retorno

Expressão numérica de float em $$\mathbb{R}$$.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

COT no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Infelizmente, o objeto Mathno JavaScript não fornece um método para calcular a cotangente de um determinado ângulo.\ Isso poderia ser calculado usando a equação: $$cot(x) = \frac{cos(x)}{sin(x)}$$

Amostra de padrão de origem

Exemplo de implementação

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

angle: Expressão numérica em radianos.

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

RADIANS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Converte graus em radianos.\ (RADIANS no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 RADIANS( expression )
Copy
Argumentos

expression: Expressão numérica em graus.

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica em radianos.

Exemplos

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

Copy

Nota

Converta o parâmetro dessa função em float, caso contrário, a instrução acima retornará 3 em vez do valor PI.

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

RADIANS no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

O JavaScript não fornece um método para converter graus em radianos de um determinado ângulo.\ Isso pode ser calculado usando a equação: $$Radians = \frac{\pi}{180^{\circ}} \cdot angle$$

Amostra de padrão de origem

Exemplo de implementação

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

angle: Expressão flutuante em graus.

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica em radianos.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

PI

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o valor constante de PI\ (PI no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 PI( )
Copy
Argumentos

Esse método não recebe nenhum parâmetro.

Tipo de retorno

Float.

Exemplos

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

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

PI no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Constante que representa o número PI (aproximadamente 3,141592…)\ (Documentação do JavaScript PI).

Amostra de padrão de origem

Sintaxe

 Math.PI
Copy

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

DEGREES

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Converte o ângulo em radianos enviado por meio de parâmetros para graus (DEGREES no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 DEGREES( expression )
Copy
Argumentos

expression: Expressão float numérico em radianos.

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

DEGREES no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

O JavaScript não fornece um método para converter radianos em graus de um determinado ângulo.\ Isso pode ser calculado usando a equação: $$Degrees = \frac{180^{\circ}}{\pi} \cdot angle$$

Amostra de padrão de origem

Exemplo de implementação

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

angle: Expressão numérica em radianos.

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

LOG

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o logaritmo natural de um número\ (LOG no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 LOG( expression [, base ] )
Copy
Argumentos

expression: Expressão numérica.

base (opcional): Base para calcular o logaritmo de um número; por padrão, é Euler.

Tipo de retorno

Float.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

LOG no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o logaritmo usando o número de Euler como base. (Documentação da função JavaScript LOG).

Aviso

Infelizmente, o JavaScript não oferece um método que receba uma base de logaritmo por meio de seus parâmetros, mas isso pode ser resolvido dividindo a base pelo argumento.

Amostra de padrão de origem

Sintaxe

 Math.log( expression )
Copy
Argumentos

expression: Expressão numérica. Deve ser positivo, caso contrário, retorna NaN.\

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ATAN

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função que retorna o arco-tangente em radianos do número enviado como parâmetro (ATAN no Transact-SQL).

O arco-tangente é a função inversa da tangente, resumida na definição a seguir:\ $$y = arctan^{-1} \Leftrightarrow x = tan(x)$$

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

Amostra de padrão de origem

Sintaxe

 ATAN( expression )
Copy
Argumentos

expression: Expressão float numérica, ou um tipo numérico que pode ser convertido em float.

Tipo de retorno

Expressão numérica flutuante entre $$-\frac{\pi}{2}$$ e $$\frac{\pi}{2}$$.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ATAN no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função que retorna o arco-tangente de um número especificado\ (Documentação da função JavaScript ATAN).

Amostra de padrão de origem

Sintaxe

 Math.atan( expression )
Copy
Argumentos

expression: Expressão numérica.

Tipo de retorno

Expressão numérica entre $$-\frac{\pi}{2}$$ e $$\frac{\pi}{2}$$.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ATN2

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função que retorna o arco-tangente em radianos de duas coordenadas enviadas como parâmetro (ATN2 no Transact-SQL).

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

Amostra de padrão de origem

Sintaxe

 ATN2( expression_1, expression_2 )
Copy
Argumentos

expression1e expression2: Expressões numéricas.

Tipo de retorno

Expressão numérica entre $$-\pi$$ e $$\pi$$.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

ATAN2 no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Função que retorna o arco-tangente de dois parâmetros\ (Documentação da função JavaScript ATAN2).

Amostra de padrão de origem

Sintaxe

 Math.atan2( expression_1, expression_2 )
Copy
Argumentos

expression_1e expression_2: Expressões numéricas.

Tipo de retorno

Expressão numérica entre $$-\pi$$ e $$\pi$$.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

LOG10

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o logaritmo de base 10 de um número\ (LOG10 no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 LOG10( expression )
Copy
Argumentos

expression: Expressão numérica, deve ser positiva.

Tipo de retorno

Float.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

LOG10 no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o logaritmo de base 10 de um número\ (Documentação da função JavaScript LOG10).

Amostra de padrão de origem

Sintaxe

 Math.log10( expression )
Copy
Argumentos

expression: Expressão numérica. Deve ser positivo, caso contrário, retorna NaN.\

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

EXP

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o valor exponencial de Euler (EXP no Transact-SQL).

Amostra de padrão de origem

Sintaxe

 EXP( expression )
Copy
Argumentos

expression: Expressão numérica.

Tipo de retorno

O mesmo tipo de dados enviado por meio do parâmetro como uma expressão numérica.

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

EXP no JS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Constante que representa o número de Euler (aproximadamente 2,718…)\ (Documentação do número de Euler no JavaScript) \ O JavaScript permite fazer diferentes operações usando essa constante, em vez do Transact-SQL, que suporta apenas o exponencial de Euler.

Amostra de padrão de origem

Sintaxe

 Math.E
Copy

Exemplos

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

Funções de conversão

CONVERT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Converte uma expressão de um tipo de dados em outro. (CONVERT no Transact-SQL).

Amostra de padrão de origem

Sintaxe

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

Copy

Documentação do Snowflake SQL

CAST( <source_expr> AS <target_data_type> )

Copy

Exemplos

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

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

Copy

Converter o tipo de data em varchar

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

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

Copy
Converter o tipo de data em varchar com tamanho
 SELECT CONVERT(varchar(2), getdate(), 1) AS RESULT;
Copy
RESULT   |
---------+
07       |

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

Copy

Os formatos suportados para conversões de datas são:

Formatos de data

Código

Formato

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

Formatos de hora

Código

Formato

8

hh:mm:ss

14

hh:mm:ss:ff3

24

hh:mm:ss

108

hh:mm:ss

114

hh:mm:ss:ff3

Formatos de data e hora

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

Datas do calendário islâmico

Código

Formato

130

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

131

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

Se não houver correspondência de padrão com o código atual, ele será formatado para yyyy-mm-dd hh:mm:ss

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

TRY_CONVERT

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um valor convertido para o tipo de dados especificado se a conversão for bem-sucedida; caso contrário, retorna nulo.

(Referência da linguagem SQL Server TRY_CONVERT)

Sintaxe

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

Padrões de origem

Transformação básica

Para transformar essa função, primeiro temos que verificar os parâmetros de TRY_CONVERT.

 TRY_CONVERT( INT, 'test')
Copy

Se a expressão que precisa ser convertida for uma cadeia de caracteres, ela será transformada em TRY_CAST, que é uma função do Snowflake.

 TRY_CAST( 'test' AS INT)
Copy

TRY_CAST

TRY_CAST compartilha a mesma transformação com TRY_CONVERT.

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

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

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

O resultado será o mesmo do exemplo de TRY_CONVERT.

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

Problemas conhecidos

Se o tipo de dados for Varchar ou Char, ele será transformado de forma diferente.

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

Se TRY_CAST for usado com VARCHAR ou CHAR no Snowflake, isso causará um erro e, portanto, será transformado em

 TO_VARCHAR(1234);
TO_CHAR(1);
Copy

O mesmo acontece com os tipos de dados de SQL_VARIANT e GEOGRAPHY.

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

São transformados em

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

Se a expressão não for uma cadeia de caracteres, há uma grande chance de falha, pois TRY_CAST do Snowflake funciona somente com expressões de cadeia de caracteres.

Nesse caso, será feita outra transformação

 TRY_CAST(14.85 AS INT)
Copy

Será transformado em

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

Agora, com essas transformações, pode haver problemas dependendo do que está sendo feito com as funções. TRY_CONVERT de SqlServer retorna nulos se a conversão não for possível.

Isso pode ser usado para fazer a seguinte lógica

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

Esse tipo de condição com TRY_CONVERT pode ser usado com TRY_CAST, mas o que acontece se ele for transformado em TO_VARCHAR, TOCHAR ou no CAST? Se a conversão nessas funções falhar, ela causará um erro em vez de simplesmente retornar nulo.

Exemplos

Neste exemplo, temos vários TRY_CONVERT com diferentes tipos de dados

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

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

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

Se migrarmos essa seleção, obteremos o seguinte resultado

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

Vamos executar cada uma delas e comparar o resultado.

Alias

Resultado do SqlServer

Resultado do 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 Relacionados

  1. SSC-FDM-TS0005: TRY_CONVERT/TRY_CAST não pôde ser convertido em TRY_CAST.

Funções de data e hora

AT TIME ZONE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Converte um inputdate para o valor datetimeoffset correspondente no fuso horário de destino. (AT TIME ZONE no Transact-SQL).

Amostra de padrão de origem

Sintaxe

inputdate AT TIME ZONE timezone

Copy

Documentação do Snowflake SQL

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

CONVERT_TIMEZONE( <target_tz> , <source_timestamp> )

Copy

Exemplos

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

Resultado:

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

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

  1. O Snowflake não oferece suporte a todos os fusos horários que o SQL Server oferece. Você pode verificar os fusos horários compatíveis neste link.

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

Resultado:

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

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

EWIs relacionados

  1. SSC-FDM-TS0024: CURRENT_TIMESTAMP na instrução At Time Zone pode ter um comportamento diferente em determinados casos.

  2. SSC-EWI-TS0063: O fuso horário não é compatível com o Snowflake.

DATEADD

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna um número inteiro que representa datepart da data especificada. (DATEPART no Transact-SQL).

Amostra de padrão de origem

Sintaxe

DATEADD (datepart , number , date )  

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

DATEDIFF

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Esta função retorna a contagem (como um valor inteiro assinado) dos limites de datepart especificado cruzados entre a data de início e a data de término especificadas. (DATEDIFF no Transact-SQL).

Amostra de padrão de origem

Sintaxe

DATEDIFF ( datepart , startdate , enddate )  

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

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

Resultado:

DIFF|
----+
   1|

Copy

Código:

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

Resultado:

DIFF|
----+
   1|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

DATEFROMPARTS

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna um valor date que mapeia os valores especificados de ano, mês e dia.(DATEFROMPARTS no Transact-SQL).

Amostra de padrão de origem

Sintaxe

DATEFROMPARTS ( year, month, day )  

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

DATENAME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna uma cadeia de caracteres de número que representa datepart da data especificada. (DATENAME no Transact-SQL).

Amostra de padrão de origem

Sintaxe

DATENAME ( datepart , date )  

Copy

Nota

Essa transformação usa várias funções, dependendo das entradas

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

Copy

Exemplos

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

DATEPART

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna um número inteiro que representa datepart da data especificada. (DATEPART no Transact-SQL).

Amostra de padrão de origem

Sintaxe

DATEPART ( datepart , date )  

Copy

Documentação do Snowflake SQL

DATE_PART( <date_or_time_part> , <date_or_time_expr> )

Copy

Exemplos

Código:

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

Resultado:

YEAR |
-----+
 2022|

Copy

Código:

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

Resultado:

YEAR |
-----+
 2022| 

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

DAY

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna um número inteiro que representa o dia (dia do mês) da data especificada. (DAY no Transact-SQL).

Amostra de padrão de origem

Sintaxe

DAY ( date )  

Copy

Documentação do Snowflake SQL

DAY( <date_or_timestamp_expr> )

Copy

Exemplos

Código:

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

Resultado:

DAY  |
-----+
   10|

Copy

Código:

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

Resultado:

DAY  |
-----+
   10|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

EOMONTH

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Essa função retorna o último dia do mês que contém uma data especificada, com um deslocamento opcional. (EOMONTH no Transact-SQL).

Amostra de padrão de origem

Sintaxe

EOMONTH ( start_date [, month_to_add ] )  

Copy

Documentação do Snowflake SQL

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

Copy

Exemplos

Código:

 SELECT EOMONTH (GETDATE()) AS Result; 
Copy

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

GETDATE

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna o carimbo de data/hora atual do sistema do banco de dados como um valor datetime sem o deslocamento do fuso horário do banco de dados. (GETDATE no Transact-SQL).

Amostra de padrão de origem

Sintaxe

GETDATE() 

Copy

Documentação do Snowflake SQL

CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )

Copy

Exemplos

Código:

 SELECT GETDATE() AS DATE;
Copy

Resultado:

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

Copy

Código:

 SELECT CURRENT_TIMESTAMP() :: TIMESTAMP AS DATE;
Copy

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

MONTH

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um número inteiro que representa o mês da data especificada. (MONTH no Transact-SQL).

Amostra de padrão de origem

Sintaxe

MONTH( date )  

Copy

Documentação do Snowflake SQL

MONTH ( <date_or_timestamp_expr> )

Copy

Exemplos

Código:

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

Resultado:

MONTH|
-----+
   10|

Copy

Código:

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

Resultado:

MONTH|
-----+
   10|

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SWITCHOFFSET

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

O SWITCHOFFSET ajusta um determinado valor de carimbo de data/hora a um deslocamento de fuso horário específico. Isso é feito por meio de valores numéricos. Mais informações podem ser encontradas em SWITCHOFFSET (Transact-SQL).

Amostra de padrão de origem

Sintaxe

Um auxiliar UDF realiza a equivalência funcional e também compartilha a mesma sintaxe da função SWITCHOFFSET do SQLServer.

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

Exemplo

Código:

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

Resultado:

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

Copy

Código:

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

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SYSDATETIME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um valor datetime2(7) que contém a data e a hora do computador no qual a instância do SQL Server está sendo executada. (SYSDATETIME no Transact-SQL).

Amostra de padrão de origem

Sintaxe

SYSDATETIME ( )  

Copy

Documentação do Snowflake SQL

LOCALTIME()

Copy

Exemplos

Código:

 SELECT SYSDATETIME ( ) AS SYSTEM_DATETIME;
Copy

Resultado:

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

Copy

Código:

 SELECT LOCALTIME ( ) AS SYSTEM_DATETIME;
Copy

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

SYSUTCDATETIME

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um valor datetime2(7) que contém a data e a hora do computador no qual a instância do SQL Server está sendo executada. (SYSUTCDATETIME no Transact-SQL).

Amostra de padrão de origem

Sintaxe

SYSUTCDATETIME ( )  

Copy

Documentação do Snowflake SQL

SYSDATE()

Copy

Exemplos

Código:

 SELECT SYSUTCDATETIME() as SYS_UTC_DATETIME;
Copy

Resultado:

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

Copy

Código:

 SELECT
SYSDATE() as SYS_UTC_DATETIME;
Copy

Resultado:

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

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.

YEAR

Applies to
  • [x] SQL Server

  • [x] Azure Synapse Analytics

Descrição

Retorna um número inteiro que representa o ano da data especificada. (YEAR no Transact-SQL).

Amostra de padrão de origem

Sintaxe

YEAR( date )  

Copy

Documentação do Snowflake SQL

YEAR ( <date_or_timestamp_expr> )

Copy

Exemplos

Código:

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

Resultado:

YEAR |
-----+
2022 |

Copy

Código:

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

Resultado:

YEAR |
-----+
2022 |

Copy

Problemas conhecidos

Não foram encontrados problemas.

EWIs Relacionados

Sem EWIs relacionados.