SnowConvert: Funções internas do Transact¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Agregado ¶
TransactSQL | Snowflake | Notes |
---|---|---|
TransactSQL | Snowflake | Notes |
APPROX_COUNT_DISTINCT | APPROX_COUNT_DISTINCT | |
AVG | AVG | |
CHECKSUM_AGG | *to be defined | |
COUNT | COUNT | |
COUNT_BIG | *to be defined | |
GROUPING | GROUPING | |
GROUPING_ID | GROUPING_ID | |
MAX | MAX | |
MIN | MIN | |
STDEV | STDDEV, STDEV_SAMP | |
STDEVP | STDDEV_POP | |
SUM | SUM | |
VAR | VAR_SAMP | |
VARP | VAR_POP |
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 <, >, =, <> 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 <, >, =, <> deve ser seguido por um NULL</p> |
*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 <, >, =, <> 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 ¶
TransactSQL | Snowflake | Notes |
---|---|---|
TransactSQL | Snowflake | Notes |
@@PROCID | *to be defined | |
APP_NAME | *to be defined | |
APPLOCK_MODE | *to be defined | |
APPLOCK_TEST | *to be defined | |
ASSEMBLYPROPERTY | *to be defined | |
COL_LENGTH | *to be defined | |
COL_NAME | *to be defined | |
COLUMNPROPERTY | *to be defined | |
DATABASE_PRINCIPAL_ID | *to be defined | Maps to CURRENT_USER when no args |
DATABASEPROPERTYEX | *to be defined | |
DB_ID | *to be defined | We recommend changing to CURRENT_DATABASE(). If there is a need to emulate this functionality. SELECT DATE_PART(EPOCH,CREATED) FROM INFORMATION_SCHEMA.DATABASES WHERE DATABASE_NAME = 'DB' ; Can achieve something similar |
DB_NAME | *to be defined | Mostly used in the procedurename mentioned above |
FILE_ID | *to be defined | |
FILE_IDEX | *to be defined | |
FILE_NAME | *to be defined | |
FILEGROUP_ID | *to be defined | |
FILEGROUP_NAME | *to be defined | |
FILEGROUPPROPERTY | *to be defined | |
FILEPROPERTY | *to be defined | |
FULLTEXTCATALOGPROPERTY | *to be defined | |
FULLTEXTSERVICEPROPERTY | *to be defined | |
INDEX_COL | *to be defined | |
INDEXKEY_PROPERTY | *to be defined | |
INDEXPROPERTY | *to be defined | |
NEXT VALUE FOR | *to be defined | |
OBJECT_DEFINITION | *to be defined | |
OBJECT_ID | *to be defined | In most cases can be replaced. Most cases are like: IF OBJECT_ID('dbo.TABLE') IS NOT NULL DROP TABLE dbo.Table which can be replaced by a DROP TABLE IF EXISTS (this syntax is also supported in SQL SERVER). If the object_id needs to be replicated, a UDF is added depending on the second parameter of the function call. |
OBJECT_NAME | *to be defined | Can be replaced by: CREATE OR REPLACE PROCEDURE FOO() RETURNS STRING LANGUAGE JAVASCRIPT AS ' var rs = snowflake.execute({sqlText:SELECT CURRENT_DATABASE() || '.' || ? , binds:[arguments.callee.name]}); rs.next(); var procname = rs.getColumnValue(1); return procname; '; |
OBJECT_NAME(@@PROCID) | 'ObjectName' | This transformation only occurs when it is inside a DeclareStatement. ObjectName is the name of the TopLevelObject that contains the Function. |
OBJECT_SCHEMA_NAME | *to be defined | |
OBJECT_SCHEMA_NAME(@@PROCID) | :OBJECT_SCHEMA_NAME | This transformation only occurs when it is inside a DeclareStatement. |
OBJECTPROPERTY | *to be defined | |
OBJECTPROPERTYEX | *to be defined | |
ORIGINAL_DB_NAME | *to be defined | |
PARSENAME | PARSENAME_UDF | It creates a UDF to emulate the same behavior of Parsename function. |
*to be defined | ||
SCHEMA_NAME | *to be defined | |
SCOPE_IDENTITY | *to be defined | It this is needed I would recommend to use sequences, and capture the value before insert |
SERVERPROPERTY | *to be defined | |
STATS_DATE | *to be defined | |
TYPE_ID | *to be defined | |
TYPE_NAME | *to be defined | |
TYPEPROPERTY | *to be defined | |
VERSION | *to be defined |
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 |
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 )
NVL( <expr1> , <expr2> )
Exemplos¶
Código:
SELECT ISNULL(NULL, 'SNOWFLAKE') AS COMPANYNAME;
Resultado:
+-----------+
|COMPANYNAME|
+-----------+
|SNOWFLAKE |
+-----------+
Código:
SELECT
NVL(NULL, 'SNOWFLAKE') AS COMPANYNAME;
Resultado:
+-----------+
|COMPANYNAME|
+-----------+
|SNOWFLAKE |
+-----------+
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 ( )
UUID_STRING()
Exemplos¶
Aviso
Os resultados podem ser diferentes porque gera um ID exclusivo em tempo de execução
Código:
SELECT NEWID ( ) AS ID;
Resultado:
+------------------------------------+
|ID |
+------------------------------------+
|47549DDF-837D-41D2-A59C-A6BC63DF7910|
+------------------------------------+
Código:
SELECT
UUID_STRING( ) AS ID;
Resultado:
+------------------------------------+
|ID |
+------------------------------------+
|6fd4312a-7925-4ad9-85d8-e039efd82089|
+------------------------------------+
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 )
NULLIF( <expr1> , <expr2> )
Exemplos¶
Código:
SELECT NULLIF(6,9) AS RESULT1, NULLIF(5,5) AS RESULT2;
Resultado:
+-------+-------+
|RESULT1|RESULT2|
+-------+-------+
|6 |null |
+-------+-------+
Código:
SELECT
NULLIF(6,9) AS RESULT1,
NULLIF(5,5) AS RESULT2;
Resultado:
+-------+-------+
|RESULT1|RESULT2|
+-------+-------+
|6 |null |
+-------+-------+
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
SQLROWCOUNT
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;
Resultado:
+-+
| |
+-+
|3|
+-+
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();
Resultado:
+----------+
|:ADDCOUNT |
+----------+
| 3 |
+----------+
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 ] ] )
Exemplos¶
Código:
SELECT FORMATMESSAGE('This is the %s and this is the %s.', 'first variable', 'second variable') AS RESULT;
Resultado:
RESULT|
-----------------------------------------------------------+
This is the first variable and this is the second variable.|
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;
Resultado:
RESULT |
-----------------------------------------------------------+
This is the first variable and this is the second variable.|
Problemas conhecidos ¶
Não foram encontrados problemas.
EWIs Relacionados ¶
Sem EWIs relacionados.
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,)
$$;
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 )
Documentação completa do Snowflake SQL
{CHR | CHAR} ( <input> )
Documentação completa do JavaScript
String.fromCharCode( expression1, ... , expressionN )
Exemplos¶
Entrada:
SELECT CHAR(170) AS SMALLEST_A
Saída:
SMALLEST_A|
-----------+
ª|
Código:
SELECT
CHAR(170) AS SMALLEST_A;
Resultado:
SMALLEST_A|
-----------+
ª|
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;
Resultado:
SMALLEST_A|
-----------+
ª|
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] )
Documentação completa do Snowflake SQL
CHARINDEX( <expr1>, <expr2> [ , <start_pos> ] )
Documentação completa do JavaScript
String.indexOf( search_value [, index] )
Exemplos¶
Código:
SELECT CHARINDEX('t', 'Customer') AS MatchPosition;
Resultado:
INDEX|
-----------+
33|
Código:
SELECT
CHARINDEX('t', 'Customer') AS MatchPosition;
Resultado:
INDEX|
-----------+
33|
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;
Resultado:
INDEX|
-----------+
33|
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 ] )
COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )
Exemplos¶
Código:
SELECT TOP 10 StartDate,
COALESCE(EndDate,'2000-01-01') AS FIRST_NOT_NULL
FROM HumanResources.EmployeeDepartmentHistory
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|
Código:
SELECT TOP 10
StartDate,
COALESCE(EndDate,'2000-01-01') AS FIRST_NOT_NULL
FROM
HumanResources.EmployeeDepartmentHistory;
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|
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 ] )
Documentação completa do Snowflake SQL
CONCAT( <expr1> [ , <exprN> ... ] )
<expr1> || <expr2> [ || <exprN> ... ]
Documentação completa do JavaScript
String.concat( expression1, ..., expressionN )
Exemplos¶
Código:
SELECT CONCAT('Ray',' ','of',' ','Light') AS TITLE;
Saída:
TITLE|
------------+
Ray of Light|
Código:
SELECT
CONCAT('Ray',' ','of',' ','Light') AS TITLE;
Saída:
TITLE|
------------+
Ray of Light|
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;
\ Saída:
TITLE|
------------+
Ray of Light|
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 )
Documentação completa do Snowflake SQL
LEFT ( <expr> , <length_expr> )
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);
Exemplos¶
Código:
SELECT LEFT('John Smith', 5) AS FIRST_NAME;
Saída:
FIRST_NAME|
----------+
John |
Código:
SELECT LEFT('John Smith', 5) AS FIRST_NAME;
Saída:
FIRST_NAME|
----------+
John |
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;
\ Saída:
FIRST_NAME|
----------+
John |
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 )
Documentação completa do Snowflake SQL
LENGTH( <expression> )
LEN( <expression> )
Documentação completa do JavaScriptSQL
string.length
Exemplos¶
Código:
SELECT LEN('Sample text') AS [LEN];
Saída:
LEN|
---+
11|
Código:
SELECT LEN('Sample text') AS LEN;
Saída:
LEN|
---+
11|
Código:
CREATE OR REPLACE FUNCTION get_len(str varchar)
RETURNS float
LANGUAGE JAVASCRIPT
AS
$$
return STR.length;
$$;
SELECT GET_LEN('Sample text') LEN;
\ Saída:
LEN|
---+
11|
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 )
Documentação completa do Snowflake SQL
LOWER( <expr> )
Documentação completa do JavaScriptSQL
String.toLowerCase( )
Exemplos¶
Código:
SELECT LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') AS LOWERCASE;
Saída:
LOWERCASE |
-------------------------------------+
you are a prediction of the good ones|
Código:
SELECT LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') AS LOWERCASE;
Saída:
LOWERCASE |
-------------------------------------+
you are a prediction of the good ones|
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;
\ Saída:
LOWERCASE |
-------------------------------------+
you are a prediction of the good ones|
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 )
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);
|
------------+
ª|
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 )
Documentação completa do Snowflake SQL
REPLACE( <subject> , <pattern> [ , <replacement> ] )
String.replace( pattern, new_expression)
Exemplos¶
Código:
SELECT REPLACE('Real computer software', 'software','science') AS COLUMNNAME;
Saída:
COLUMNNAME |
---------------------+
Real computer science|
Código:
SELECT REPLACE('Real computer software', 'software','science') AS COLUMNNAME;
Saída:
COLUMNNAME |
---------------------+
Real computer science|
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;
\ Saída:
COLUMNNAME |
---------------------+
Real computer science|
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 )
REPEAT(<input>, <n>)
String.repeat( number_expression )
Exemplos¶
Código:
SELECT REPLICATE('Staying alive',5) AS RESULT
Resultado:
RESULT |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|
Código:
SELECT REPEAT('Staying alive',5) AS RESULT;
Resultado:
RESULT |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|
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;
Resultado:
RESULT |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|
Problemas conhecidos ¶
Não foram encontrados problemas.
EWIs Relacionados ¶
Sem EWIs relacionados.
RIGHT¶
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¶
RIGHT ( character_expression , integer_expression )
Documentação completa do Snowflake SQL
RIGHT( <expr> , <length_expr> )
UDF usado para emular o comportamento
function RIGHT(string, index){
if(index< 0){
throw new RangeError('Invalid INDEX on RIGHT function');
}
return string.slice( string.length - index, string.length );
}
Exemplos¶
Código:
SELECT RIGHT('John Smith', 5) AS LAST_NAME;
Saída:
LAST_NAME|
------------+
Smith|
Código:
SELECT RIGHT('John Smith', 5) AS LAST_NAME;
Saída:
LAST_NAME|
------------+
Smith|
Código:
CREATE OR REPLACE FUNCTION right_str(str varchar, index float)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
function RIGHT(string, index){
if(index< 0){
throw new RangeError('Invalid INDEX on RIGHT function');
}
return string.slice( string.length - index, string.length );
}
return RIGHT(STR, INDEX);
$$;
SELECT RIGHT_STR('John Smith', 5) AS LAST_NAME;
\ Saída:
LAST_NAME|
------------+
Smith|
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 )
Documentação completa do Snowflake SQL
RTRIM(<expr> [, <characters> ])
Função personalizada usada para emular o comportamento
function RTRIM(string){
return string.replace(/s+$/,"");
}
Exemplos¶
Entrada:
SELECT RTRIM('LAST TWO BLANK SPACES ') AS [RTRIM]
Saída:
RTRIM |
---------------------+
LAST TWO BLANK SPACES|
Código:
SELECT RTRIM('LAST TWO BLANK SPACES ') AS RTRIM;
Resultado:
RTRIM |
---------------------+
LAST TWO BLANK SPACES|
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;
Resultado:
RTRIM |
---------------------+
LAST TWO BLANK SPACES|
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 )
Documentação completa do Snowflake SQL
SPACE(<n>)
Função personalizada usada para emular o comportamento
function SPACE( occurrences ){
return ' '.repeat( occurrences );
}
Exemplos¶
Entrada:
SELECT CONCAT('SOME', SPACE(5), 'TEXT') AS RESULT;
Saída:
RESULT |
-------------+
SOME TEXT|
Entrada:
SELECT CONCAT('SOME', SPACE(5), 'TEXT') AS RESULT;
Saída:
RESULT |
-------------+
SOME TEXT|
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;
Saída:
RESULT |
-------------+
SOME TEXT|
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 )
Documentação completa do Snowflake SQL
SUBSTR( <base_expr>, <start_expr> [ , <length_expr> ] )
SUBSTRING( <base_expr>, <start_expr> [ , <length_expr> ] )
Função personalizada usada para emular o comportamento
string.substring( indexA [, indexB])
Exemplos¶
Entrada:
SELECT SUBSTRING('abcdef', 2, 3) AS SOMETEXT;
Saída:
SOMETEXT|
--------+
bcd |
Código:
SELECT SUBSTRING('abcdef', 2, 3) AS SOMETEXT;
Resultado:
SOMETEXT|
--------+
bcd |
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;
Resultado:
SOMETEXT|
--------+
bcd |
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 )
Documentação completa do Snowflake SQL
UPPER( <expr> )
Documentação completa do JavaScriptSQL
String.toUpperCase( )
Exemplos¶
Código:
SELECT UPPER('you are a prediction of the good ones') AS [UPPER]
Saída:
+-------------------------------------+
|UPPER |
+-------------------------------------+
|YOU ARE A PREDICTION OF THE GOOD ONES|
+-------------------------------------+
Código:
SELECT
UPPER('you are a prediction of the good ones') AS UPPER;
Saída:
+-------------------------------------+
|UPPER |
+-------------------------------------+
|YOU ARE A PREDICTION OF THE GOOD ONES|
+-------------------------------------+
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;
\ Saída:
UPPER |
-------------------------------------+
YOU ARE A PREDICTION OF THE GOOD ONES|
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 )
Argumentos¶
expression
: expressão VARCVHAR
ou CHAR
.
Tipo de retorno¶
INT
.
Exemplos¶
SELECT ASCII('A') AS A , ASCII('a') AS a;
A| a|
-----------+ ----------+
65| 97|
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] )
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;
A| a|
-----------+ ----------+
65| 97|
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])
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;
HELLO|
---------+
`Hello`|
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);
}
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;
HELLO|
---------+
`Hello`|
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 )
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;
NAME|
------------+
Mariah Carey|
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 )
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;
NAME|
------------+
Mariah Carey|
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 )
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;
TWO| TOO|
---------+---------+
T000| T000|
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));
}
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;
TWO| TOO|
---------+---------+
T000| T000|
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 )
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;
PALINDROME|
----------------+
rotator|
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("");
}
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;
PALINDROME|
----------------+
rotator|
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 )
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];
ESCAPE|
--------------------------+
\\ \/ \\\\ \" |
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 )
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;
ESCAPE|
--------------------------+
\\ \/ \\\\ \" |
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 )
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];
Saída:
+-------------------------------+
|TRIM |
+-------------------------------+
|FIRST AND LAST TWO BLANK SPACES|
+-------------------------------+
Código:
SELECT TRIM(' FIRST AND LAST TWO BLANK SPACES ') AS TRIM;
Saída:
+-------------------------------+
|TRIM |
+-------------------------------+
|FIRST AND LAST TWO BLANK SPACES|
+-------------------------------+
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( )
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
TRIM|
-------------------------------+
FIRST AND LAST TWO BLANK SPACES|
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 )
Argumentos¶
expression1, expression2:
Expressões de cadeia de caracteres a serem comparadas.
Tipo de retorno¶
Int
.
Exemplos¶
SELECT DIFFERENCE('Like', 'Mike');
Output |
-----------|
3 |
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;
}
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;
DIFFERENCE|
-------------+
4|
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])
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';
GREAT BRITAIN|
---------------+
24/01/2022|
SELECT FORMAT(244900.25, 'C', 'cr-CR') AS 'CURRENCY';
CURRENCY|
---------------+
₡244,900.25|
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 )
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 )
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;
GREAT_BRITAIN|
---------------+
24/01/2022|
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;
CURRENCY|
---------------+
244.900,25 CRC|
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 )
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]
PATINDEX|
------------+
10|
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 )
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;
PATINDEX|
------------+
10|
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 ] ] )
STR_UDF( numeric_expression, number_format )
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);
Saída:
1) 124
2) **
3) 123
4) 123.5
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');
Saída:
1) 124
2) ##
3) 123
4) 123.5
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);
}
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);
STR|
--------------+
12345.674000|
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 )
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]
LTRIM|
----------------------+
FIRST TWO BLANK SPACES|
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+/,"");
}
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;
LTRIM|
----------------------+
FIRST TWO BLANK SPACES|
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 > )
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 > )
Exemplos¶
Código:
SELECT TOP 10 BUSINESSENTITYID, NATIONALIDNUMBER, RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK FROM HUMANRESOURCES.EMPLOYEE AS TOTAL
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|
Código:
SELECT TOP 10
BUSINESSENTITYID,
NATIONALIDNUMBER,
RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK
FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
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|
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 )
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 )
Exemplos¶
Código:
SELECT TOP 10 BUSINESSENTITYID, NATIONALIDNUMBER, RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK FROM HUMANRESOURCES.EMPLOYEE AS TOTAL
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|
Código:
SELECT TOP 10
BUSINESSENTITYID,
NATIONALIDNUMBER,
RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK
FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
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|
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 )
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 )
Exemplos¶
Código:
SELECT
ROW_NUMBER() OVER(ORDER BY NAME ASC) AS RowNumber,
NAME
FROM HUMANRESOURCES.DEPARTMENT
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 |
Código:
SELECT
ROW_NUMBER() OVER(ORDER BY NAME ASC) AS RowNumber,
NAME
FROM
HUMANRESOURCES.DEPARTMENT;
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 |
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 )
IFF( <condition> , <expr1> , <expr2> )
Exemplos¶
Código:
SELECT IIF( 2 > 3, 'TRUE', 'FALSE' ) AS RESULT
Resultado:
RESULT|
------+
FALSE|
Código:
SELECT
IFF( 2 > 3, 'TRUE', 'FALSE' ) AS RESULT;
Resultado:
RESULT|
------+
FALSE|
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;
Warranty | Maintenance |
----------------------------------------------+--------------------------------------------------------------------------------------+
<Warranty>1 year parts and labor</Warranty> | <Maintenance>3 year parts and labor extended maintenance is available</Maintenance> |
<Warranty>1 year parts and labor</Warranty> | <Maintenance>3 year parts and labor extended maintenance is available</Maintenance> |
Snowflake SQL ¶
CREATE OR REPLACE TABLE xml_demo (
object_col VARIANT !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - XML DATA TYPE CONVERTED TO VARIANT ***/!!!
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
;
INSERT INTO xml_demo (object_col)
SELECT
PARSE_XML(
'<Root>
<ProductDescription ProductID="1" ProductName="Road Bike">
<Features>
<Warranty>1 year parts and labor</Warranty>
<Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>');
INSERT INTO xml_demo (object_col)
SELECT
PARSE_XML(
'<Root>
<ProductDescription ProductID="2" ProductName="Skate">
<Features>
<Warranty>1 year parts and labor</Warranty>
<Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>');
SELECT
XMLGET(XMLGET(XMLGET(object_col, 'ProductDescription'), 'Features'), 'Warranty') as Warranty,
XMLGET(XMLGET(XMLGET(object_col, 'ProductDescription'), 'Features'), 'Maintenance') as Maintenance
from
xml_demo;
Warranty | Maintenance |
----------------------------------------------+--------------------------------------------------------------------------------------+
<Warranty>1 year parts and labor</Warranty> | <Maintenance>3 year parts and labor extended maintenance is available</Maintenance> |
<Warranty>1 year parts and labor</Warranty> | <Maintenance>3 year parts and labor extended maintenance is available</Maintenance> |
Problemas conhecidos¶
Não foram encontrados problemas.
EWIs relacionados¶
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;
ID | ProductName | Warranty |
----+-------------+------------------------+
1 | Road Bike | 1 year parts and labor |
2 | Skate | 1 year parts and labor |
Snowflake SQL ¶
CREATE OR REPLACE TABLE xml_demo (
object_col VARIANT !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - XML DATA TYPE CONVERTED TO VARIANT ***/!!!
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'
;
INSERT INTO xml_demo (object_col)
SELECT
PARSE_XML(
'<Root>
<ProductDescription ProductID="1" ProductName="Road Bike">
<Features>
<Warranty>1 year parts and labor</Warranty>
<Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>');
INSERT INTO xml_demo (object_col)
SELECT
PARSE_XML(
'<Root>
<ProductDescription ProductID="2" ProductName="Skate">
<Features>
<Warranty>1 year parts and labor</Warranty>
<Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>
</ProductDescription>
</Root>');
SELECT
GET(XMLGET(object_col, 'ProductDescription'), '@ProductID') :: INT as ID,
GET(XMLGET(object_col, 'ProductDescription'), '@ProductName') :: VARCHAR as ProductName,
GET(XMLGET(XMLGET(XMLGET(object_col, 'ProductDescription'), 'Features'), 'Warranty', 0), '$') :: VARCHAR as Warranty
from
xml_demo;
ID | PRODUCTNAME | WARRANRTY |
----+-------------+------------------------+
1 | Road Bike | 1 year parts and labor |
2 | Skate | 1 year parts and labor |
Problemas conhecidos¶
Não foram encontrados problemas.
EWIs relacionados¶
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 ] | * } )
COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )
Exemplos¶
Código:
SELECT COUNT(NATIONALIDNUMBER) FROM HUMANRESOURCES.EMPLOYEE AS TOTAL;
Resultado:
TOTAL|
-----+
290|
Código:
SELECT
COUNT(NATIONALIDNUMBER) FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Resultado:
TOTAL|
-----+
290|
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 ] | * } )
COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )
Exemplos¶
Código:
SELECT COUNT_BIG(NATIONALIDNUMBER) FROM HUMANRESOURCES.EMPLOYEE AS TOTAL;
Resultado:
TOTAL|
-----+
290|
Código:
SELECT
COUNT(NATIONALIDNUMBER) FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Resultado:
TOTAL|
-----+
290|
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 )
SUM( [ DISTINCT ] <expr1> )
Exemplos¶
Código:
SELECT SUM(VACATIONHOURS) FROM HUMANRESOURCES.EMPLOYEE AS TOTALVACATIONHOURS;
Resultado:
TOTALVACATIONHOURS|
------------------+
14678|
Código:
SELECT
SUM(VACATIONHOURS) FROM
HUMANRESOURCES.EMPLOYEE AS TOTALVACATIONHOURS;
Resultado:
TOTALVACATIONHOURS|
------------------+
14678|
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
XML: Um
VARCHAR
que representa o conteúdo legível do XML.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);
$$;
Transact-SQL¶
DECLARE @idoc INT, @doc VARCHAR(1000);
SET @doc ='
<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
<Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">
<OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>
<OrderDetail OrderID="10248" ProductID="42" Quantity="10"/>
</Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
<Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00">
<OrderDetail OrderID="10283" ProductID="72" Quantity="3"/>
</Order>
</Customer>
</ROOT>';
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc;
SELECT * FROM OPENXML (@idoc, '/ROOT/Customer',1)
WITH (CustomerID VARCHAR(10), ContactName VARCHAR(20));
CustomerID | ContactName
----------------------------+
VINET | Paul Henriot
LILAS | Carlos Gonzlez
Snowflake¶
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;
CustomerID | ContactName
----------------------------+
VINET | Paul Henriot
LILAS | Carlos Gonzlez
SET code = '<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
<Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">
<OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>
</Order>
</Customer>
</ROOT>';
SELECT
Left(value:Customer['@CustomerID'],10) as "CustomerID",
Left(value:Customer['@ContactName'],20) as "ContactName"
FROM TABLE(OPENXML_UDF($code,'ROOT:Customer'));
CustomerID | ContactName
----------------------------+
VINET | Paul Henriot
Problemas conhecidos ¶
Não foram encontrados problemas.
EWIs relacionados¶
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¶
FLOAT_EXPR: Uma expressão numérica a ser convertida em varchar.
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')
$$;
Transact-SQL¶
SELECT
STR(123.5) as A,
STR(123.5, 2) as B,
STR(123.45, 6) as C,
STR(123.45, 6, 1) as D;
A |
B |
C |
D |
---|---|---|---|
124 |
** |
123 |
123,5 |
Snowflake¶
SELECT
PUBLIC.STR_UDF(123.5, '99999') as A,
PUBLIC.STR_UDF(123.5, '99') as B,
PUBLIC.STR_UDF(123.45, '999999') as C,
PUBLIC.STR_UDF(123.45, '9999.9') as D;
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
source_timestamp: Um TIMESTAMP_TZ que pode ser resolvido para um valor datetimeoffset(n).
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
$$;
Transact-SQL¶
SELECT
'1998-09-20 7:45:50.71345 +02:00' as fr_time,
SWITCHOFFSET('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;
SELECT
'1998-09-20 7:45:50.71345 +02:00' as fr_time,
SWITCHOFFSET('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;
Snowflake¶
SELECT
'1998-09-20 7:45:50.71345 +02:00' as fr_time,
PUBLIC.SWITCHOFFSET_UDF('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;
fr_time cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00
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 ] )
CURRENT_DATABASE() /*** SSC-FDM-TS0010 - CURRENT_DATABASE function has different behavior in certain cases ***/
Exemplos¶
Código:
SELECT DB_NAME();
Resultado:
RESULT |
-------------------+
ADVENTUREWORKS2019 |
Código:
SELECT
CURRENT_DATABASE() /*** SSC-FDM-TS0010 - CURRENT_DATABASE function has different behavior in certain cases ***/;
Resultado:
RESULT |
-------------------+
ADVENTUREWORKS2019 |
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¶
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' ] )
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;
BEGIN
-- ** SSC-EWI-0001 - UNRECOGNIZED TOKEN ON LINE '1' COLUMN '0' OF THE SOURCE CODE STARTING AT 'IF'. EXPECTED 'If Statement' GRAMMAR. LAST MATCHING TOKEN WAS 'null' ON LINE '1' COLUMN '48'. FAILED TOKEN WAS ')' ON LINE '1' COLUMN '52'. CODE '70'. **
--IF OBJECT_ID_UDF('DATABASE2.DBO.TABLE1') is not null) THEN
--** SSC-FDM-0007 - MISSING DEPENDENT OBJECT "TABLE1" **
DROP TABLE IF EXISTS TABLE1;
END;
2. Unknown database¶
Código:
IF OBJECT_ID_UDF('DATABASE1.DBO.TABLE1') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
Código:
IF (
OBJECT_ID_UDF('DATABASE1.DBO.TABLE1') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
3. Different object names¶
Código:
IF OBJECT_ID_UDF('DATABASE1.DBO.TABLE2') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
Código:
IF (
OBJECT_ID_UDF('DATABASE1.DBO.TABLE2') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
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¶
SSC-EWI-0001: Token não reconhecido na linha do código-fonte.
SSC-FDM-0007: Elemento com dependências ausentes
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 )
COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )
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
Resultado:
PREVIOUS|ACTUAL|
--------+------+
NULL| 10|
10| 89|
89| 10|
10| 48|
48| 0|
0| 95|
95| 55|
55| 67|
67| 84|
84| 85|
Código:
SELECT TOP 10
LAG(E.VacationHours,1) OVER(ORDER BY E.NationalIdNumber) as PREVIOUS,
E.VacationHours AS ACTUAL
FROM
HumanResources.Employee E;
Resultado:
PREVIOUS|ACTUAL|
--------+------+
NULL| 10|
10| 89|
89| 10|
10| 48|
48| 0|
0| 95|
95| 55|
55| 67|
67| 84|
84| 85|
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 )
OCTET_LENGTH(<string_or_binary>)
Exemplos¶
Código:
SELECT DATALENGTH('SomeString') AS SIZE;
Resultado:
SIZE|
----+
10|
Código:
SELECT OCTET_LENGTH('SomeString') AS SIZE;
Resultado:
SIZE|
----+
10|
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 )
ABS( <num_expr> )
Documentação completa do JavaScript
Math.abs( expression )
Exemplos¶
Código:
SELECT ABS(-5);
Resultado:
ABS(-5)|
-------+
5|
Código:
SELECT ABS(-5);
Resultado:
ABS(-5)|
-------+
5|
Código:
CREATE OR REPLACE FUNCTION compute_abs(a float)
RETURNS float
LANGUAGE JAVASCRIPT
AS
$$
return Math.abs(A);
$$
;
SELECT COMPUTE_ABS(-5);
\ Resultado:
COMPUTE_ABS(-5)|
---------------+
5|
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 ) ]
AVG( [ DISTINCT ] <expr1> )
AVG( [ DISTINCT ] <expr1> ) OVER (
[ PARTITION BY <expr2> ]
[ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
)
Exemplos¶
Código:
SELECT AVG(VACATIONHOURS) AS AVG_VACATIONS FROM HUMANRESOURCES.EMPLOYEE;
Resultado:
AVG_VACATIONS|
-------------+
50|
Código:
SELECT AVG(VACATIONHOURS) AS AVG_VACATIONS FROM HUMANRESOURCES.EMPLOYEE;
Resultado:
AVG_VACATIONS|
-------------+
50.613793|
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 )
CEIL( <input_expr> [, <scale_expr> ] )
Math.ceil( expression )
Exemplos¶
Código:
SELECT CEILING(642.20);
\ Resultado:
CEILING(642.20)|
---------------+
643 |
Código:
SELECT CEIL(642.20);
\ Resultado:
CEIL(642.20)|
------------+
643 |
Código:
CREATE OR REPLACE FUNCTION compute_ceil(a double)
RETURNS double
LANGUAGE JAVASCRIPT
AS
$$
return Math.ceil(A);
$$
;
SELECT COMPUTE_CEIL(642.20);
\ Resultado:
COMPUTE_CEIL(642.20)|
--------------------+
643|
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 )
FLOOR( <input_expr> [, <scale_expr> ] )
Exemplos¶
Código:
SELECT FLOOR (124.87) AS FLOOR;
Resultado:
FLOOR|
-----+
124|
Código:
SELECT FLOOR (124.87) AS FLOOR;
Resultado:
FLOOR|
-----+
124|
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 )
POW(x, y)
POWER (x, y)
Exemplos¶
Código:
SELECT POWER(2, 10.0) AS IntegerResult
Resultado:
IntegerResult |
--------------+
1024|
Código:
SELECT POWER(2, 10.0) AS IntegerResult;
Resultado:
IntegerResult |
--------------+
1024|
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 ] )
ROUND( <input_expr> [, <scale_expr> ] )
Exemplos¶
Código:
SELECT ROUND(123.9994, 3) AS COL1, ROUND(123.9995, 3) AS COL2;
Resultado:
COL1 |COL2 |
--------+--------+
123.9990|124.0000|
Código:
SELECT ROUND(123.9994, 3) AS COL1,
ROUND(123.9995, 3) AS COL2;
Resultado:
COL1 | COL2 |
--------+------+
123.999|124.000|
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 )
SQRT(expr)
Exemplos¶
Código:
SELECT SQRT(25) AS RESULT;
Resultado:
RESULT|
------+
5.0|
Código:
SELECT SQRT(25) AS RESULT;
Resultado:
RESULT|
------+
5.0|
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 )
SQUARE(expr)
Exemplos¶
Código:
SELECT SQUARE (5) AS SQUARE;
Resultado:
SQUARE|
------+
25.0|
Código:
SELECT SQUARE (5) AS SQUARE;
Resultado:
SQUARE|
------+
25|
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 )
STDDEV( [ DISTINCT ] <expression_1> )
Exemplos¶
Código:
SELECT
STDEV(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS STDEV;
Resultado:
STDEV|
----------------+
28.7862150320948|
Código:
SELECT
STDDEV(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS STDEV;
Resultado:
STDEV|
------------+
28.786215034|
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 )
STDDEV_POP( [ DISTINCT ] expression_1)
Exemplos¶
Código:
SELECT
STDEVP(VACATIONHOURS) AS STDEVP_VACATIONHOURS
FROM
HumanResources.Employee;
Resultado:
STDEVP_VACATIONHOURS|
--------------------+
28.736540767245085|
Código:
SELECT
STDDEV_POP(VACATIONHOURS) AS STDEVP_VACATIONHOURS
FROM
HumanResources.Employee;
Resultado:
STDEVP_VACATIONHOURS|
--------------------+
28.736540763|
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 )
VAR_SAMP( [DISTINCT] <expr1> )
Exemplos¶
Código:
SELECT
VAR(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS VAR;
Resultado:
VAR|
----------------+
28.7862150320948|
Código:
SELECT
VAR_SAMP(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS VAR;
Resultado:
VAR|
----------+
828.646176|
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 )
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 Type | Return Type |
---|---|
float, real | float |
decimal(p, s) | decimal(38, s) |
int, smallint, tinyint | int |
bigint | bigint |
money, smallmoney | money |
bit, char, nchar, varchar, nvarchar | float |
Exemplos¶
SELECT POWER(2, 3)
POWER(2, 3)|
-----------+
8.0|
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 )
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);
COMPUTE_POW(2, 3)|
-----------------+
8|
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 )
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);
ACOS(-1.0) |
-----------------+
3.141592653589793|
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 )
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);
COMPUTE_ACOS(-1)|
---------------+
3.141592654|
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 )
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);
ASIN(0.5) |
------------------+
0.5235987755982989|
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 )
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);
COMPUTE_ASIN(1) |
------------------+
0.5235987756|
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 )
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())
COS(PI())|
---------+
-1.0|
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 )
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());
COMPUTE_COS(PI())|
-----------------+
-1|
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 )
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)
COT(1) |
------------------+
0.6420926159343306|
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 Math
no 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);
}
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);
COMPUTE_COT(1); |
------------------+
0.6420926159343308|
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 )
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)
RADIANS(180) |
--------------------+
3.141592653589793116|
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;
}
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);
RADIANS(180) |
-----------------+
3.141592654|
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( )
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;
CIRCUMFERENCE @radius = 2 |
--------------------------+
12.5663706143592|
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
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);
CIRCUMFERENCE(2)|
------------------+
12.566370614359172|
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 )
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())
DEGREES(PI())|
-------------+
180.0|
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;
}
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());
COMPUTE_DEGREES(PI())|
---------------------+
180.0|
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 ] )
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)
LOG(8, 2) |
-----------+
3|
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 )
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);
BASE_LOG(2, 8)|
--------------+
3|
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 )
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);
ATAN(-30) |
-------------------+
-1.5374753309166493|
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 )
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);
COMPUTE_ATAN(-30)|
-----------------+
-1.537475331|
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 )
Argumentos¶
expression1
e expression2
: Expressões numéricas.
Tipo de retorno¶
Expressão numérica entre $$-\pi$$ e $$\pi$$.
Exemplos¶
SELECT ATN2(7.5, 2);
ATN2(7.5, 2) |
------------------+
1.3101939350475555|
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 )
Argumentos¶
expression_1
e 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);
ATAN2(7.5, 3) |
------------------+
1.310193935|
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 )
Argumentos¶
expression
: Expressão numérica, deve ser positiva.
Tipo de retorno¶
Float.
Exemplos¶
SELECT LOG10(5)
LOG10(5) |
-----------------+
0.698970004336019|
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 )
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);
COMPUTE_LOG10(5)|
----------------+
0.6989700043|
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 )
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
EXP(LOG(20)) |LOG(EXP(20)) |
---------------+----------------+
20.0| 20.0|
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
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));
COMPUTE_EXP(LOG(20))|LOG(COMPUTE_EXP(20))|
--------------------+--------------------+
20.0| 20.0|
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 ] )
CAST( <source_expr> AS <target_data_type> )
Exemplos¶
SELECT CONVERT(INT, '1998') as MyDate
MyDate |
-------+
1998 |
SELECT
CAST('1998' AS INT) as MyDate;
MYDATE |
-------+
1998 |
Converter o tipo de data em varchar¶
SELECT CONVERT(varchar, getdate(), 1) AS RESULT;
RESULT |
---------+
12/08/22 |
SELECT
TO_VARCHAR(CURRENT_TIMESTAMP() :: TIMESTAMP, 'mm/dd/yy') AS RESULT;
RESULT |
---------+
12/08/22 |
Converter o tipo de data em varchar com tamanho¶
SELECT CONVERT(varchar(2), getdate(), 1) AS RESULT;
RESULT |
---------+
07 |
SELECT
LEFT(TO_VARCHAR(CURRENT_TIMESTAMP() :: TIMESTAMP, 'mm/dd/yy'), 2) AS RESULT;
RESULT |
---------+
07 |
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 ] )
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')
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)
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;
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;
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);
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);
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 )');
São transformados em
TO_VARIANT('2017-01-01 12:00:00');
TO_GEOGRAPHY('LINESTRING(-122.360 47.656, -122.343 47.656 )');
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)
Será transformado em
CAST(14.85 AS INT) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/
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;
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;
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;
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 ¶
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
CONVERT_TIMEZONE( <source_tz> , <target_tz> , <source_timestamp_ntz> )
CONVERT_TIMEZONE( <target_tz> , <source_timestamp> )
Exemplos¶
SELECT CAST('2022-11-24 11:00:45.2000000 +00:00' as datetimeoffset) at time zone 'Alaskan Standard Time';
Resultado:
DATE|
------------------------------+
2022-11-24 02:00:45.200 -09:00|
SELECT
CONVERT_TIMEZONE('America/Anchorage', CAST('2022-11-24 11:00:45.2000000 +00:00' as TIMESTAMP_TZ(7)));
Resultado:
DATE|
------------------------------+
2022-11-24 02:00:45.200 -09:00|
Código:
SELECT current_timestamp at time zone 'Central America Standard Time';
Resultado:
DATE|
------------------------------+
2022-10-10 10:55:50.090 -06:00|
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 ***/);
Resultado:
DATE|
------------------------------+
2022-10-10 10:55:50.090 -06:00|
Problemas conhecidos¶
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';
Resultado:
DATE|
------------------------------+
2022-12-14 20:04:18.317 -05:00|
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-TS0063 - TIME ZONE NOT SUPPORTED IN SNOWFLAKE ***/!!!
CURRENT_TIMESTAMP() at time zone 'Turks And Caicos Standard Time';
EWIs relacionados¶
SSC-FDM-TS0024: CURRENT_TIMESTAMP na instrução At Time Zone pode ter um comportamento diferente em determinados casos.
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 )
DATEADD( <date_or_time_part>, <value>, <date_or_time_expr> )
Exemplos¶
Código:
SELECT DATEADD(year,123, '20060731') as ADDDATE;
Resultado:
ADDDATE|
------------------------+
2129-07-31 00:00:00.000|
Código:
SELECT
DATEADD(year, 123, '20060731') as ADDDATE;
Resultado:
ADDDATE|
------------------------+
2129-07-31 00:00:00.000|
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 )
DATEDIFF( <date_or_time_part>, <date_or_time_expr1>, <date_or_time_expr2> )
Exemplos¶
Código:
SELECT DATEDIFF(year,'2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
Resultado:
DIFF|
----+
1|
Código:
SELECT DATEDIFF(year,'2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
Resultado:
DIFF|
----+
1|
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 )
DATE_FROM_PARTS( <year>, <month>, <day> )
Exemplos¶
Código:
SELECT DATEFROMPARTS ( 2010, 12, 31 ) AS RESULT;
Resultado:
RESULT|
----------+
2022-12-12|
Código:
SELECT DATE_FROM_PARTS ( 2010, 12, 31 ) AS RESULT;
Resultado:
RESULT|
----------+
2022-12-12|
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 )
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> )
Exemplos¶
Código:
SELECT DATENAME(month, getdate()) AS DATE1,
DATENAME(day, getdate()) AS DATE2,
DATENAME(dw, GETDATE()) AS DATE3;
Resultado:
DATE1|DATE2|DATE3 |
-----+-----+-------+
May |3 |Tuesday|
Código:
SELECT MONTHNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE1,
DAYNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE2,
DAYNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE3;
Resultado:
DATE1|DATE2|DATE3 |
-----+-----+------+
May |Tue |Tue |
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 )
DATE_PART( <date_or_time_part> , <date_or_time_expr> )
Exemplos¶
Código:
SELECT DATEPART(YEAR, '10-10-2022') as YEAR
Resultado:
YEAR |
-----+
2022|
Código:
SELECT
DATE_PART(YEAR, '10-10-2022' :: TIMESTAMP) as YEAR;
Resultado:
YEAR |
-----+
2022|
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 )
DAY( <date_or_timestamp_expr> )
Exemplos¶
Código:
SELECT DAY('10-10-2022') AS DAY
Resultado:
DAY |
-----+
10|
Código:
SELECT DAY('10-10-2022' :: TIMESTAMP) AS DAY;
Resultado:
DAY |
-----+
10|
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 ] )
LAST_DAY( <date_or_time_expr> [ , <date_part> ] )
Exemplos¶
Código:
SELECT EOMONTH (GETDATE()) AS Result;
Resultado:
RESULT|
----------+
2022-05-31|
Código:
SELECT
LAST_DAY(DATEADD('month', 0, CURRENT_TIMESTAMP() :: TIMESTAMP)) AS Result;
Resultado:
RESULT|
----------+
2022-05-31|
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()
CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )
Exemplos¶
Código:
SELECT GETDATE() AS DATE;
Resultado:
DATE |
-----------------------+
2022-05-06 09:54:42.757|
Código:
SELECT CURRENT_TIMESTAMP() :: TIMESTAMP AS DATE;
Resultado:
DATE |
-----------------------+
2022-05-06 08:55:05.422|
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 )
MONTH ( <date_or_timestamp_expr> )
Exemplos¶
Código:
SELECT MONTH('10-10-2022') AS MONTH
Resultado:
MONTH|
-----+
10|
Código:
SELECT MONTH('10-10-2022' :: TIMESTAMP) AS MONTH;
Resultado:
MONTH|
-----+
10|
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 )
SWITCHOFFSET_UDF ( timestamp_tz_expression, timezoneoffset_expression )
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;
Resultado:
fr_time cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00
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;
Resultado:
fr_time cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00
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 ( )
LOCALTIME()
Exemplos¶
Código:
SELECT SYSDATETIME ( ) AS SYSTEM_DATETIME;
Resultado:
SYSTEM_DATETIME |
-----------------------+
2022-05-06 12:08:05.501|
Código:
SELECT LOCALTIME ( ) AS SYSTEM_DATETIME;
Resultado:
SYSTEM_DATETIME |
-----------------------+
211:09:14 |
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 ( )
SYSDATE()
Exemplos¶
Código:
SELECT SYSUTCDATETIME() as SYS_UTC_DATETIME;
Resultado:
SYSTEM_UTC_DATETIME |
---------------------------+
2023-02-02 20:59:28.0926502|
Código:
SELECT
SYSDATE() as SYS_UTC_DATETIME;
Resultado:
SYSTEM_UTC_DATETIME |
-------------------------+
2023-02-02 21:02:05.557 |
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 )
YEAR ( <date_or_timestamp_expr> )
Exemplos¶
Código:
SELECT YEAR('10-10-2022') AS YEAR
Resultado:
YEAR |
-----+
2022 |
Código:
SELECT YEAR('10-10-2022' :: TIMESTAMP) AS YEAR;
Resultado:
YEAR |
-----+
2022 |
Problemas conhecidos ¶
Não foram encontrados problemas.
EWIs Relacionados ¶
Sem EWIs relacionados.