SnowConvert: Transact – integrierte Funktionen¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Aggregat ¶
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 |
Analytisch ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
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 |
Sortierung ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
COLLATIONPROPERTY |
*noch zu definieren_ |
|
TERTIARY_WEIGHTS |
*noch zu definieren_ |
Konfiguration ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
@@DBTS |
*noch zu definieren_ |
|
@@LANGID |
*noch zu definieren_ |
|
@@LANGUAGE |
*noch zu definieren_ |
|
@@LOCK_TIMEOUT |
*noch zu definieren_ |
|
@@MAX_CONNECTIONS |
*noch zu definieren_ |
|
@@MAX_PRECISION |
*noch zu definieren_ |
|
@@NESTLEVEL |
*noch zu definieren_ |
|
@@OPTIONS |
*noch zu definieren_ |
|
@@REMSERVER |
*noch zu definieren_ |
|
@@SERVERNAME |
CONCAT(„app.snowflake.com“, CURRENT_ACCOUNT( )) |
|
@@SERVICENAME |
*noch zu definieren_ |
|
@@SPID |
*noch zu definieren_ |
|
@@TEXTSIZE |
*noch zu definieren_ |
|
@@VERSION |
*noch zu definieren_ |
Kann mit CURRENT_VERSION nachgeahmt werden |
Konvertierung ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
CAST |
CAST |
<p>Gibt NULL zurück, wenn der Wert keine Zahl ist, andernfalls wird der numerische Wert als sein zurückgegeben.<br>Bei Verwendung von Operatoren wie <, >, =, <> muss dann NULL folgen</p> |
CONVERT |
Überprüfen Sie CONVERT |
Gleiche Verhaltensweise wie CAST |
PARSE |
*noch zu definieren_ |
|
TRY_CAST |
TRY_CAST |
<p>Gibt NULL zurück, wenn der Wert keine Zahl ist, andernfalls wird der numerische Wert als sein zurückgegeben.<br>Bei Verwendung von Operatoren wie <, >, =, <> muss dann NULL folgen</p> |
*noch zu definieren_ |
Gleiche Verhaltensweise wie TRY_CAST |
|
TRY_PARSE |
TRY_CAST |
Die Verhaltensweise kann unterschiedlich sein, wenn eine Ganzzahl als Datum oder Zeitstempel analysiert wird. |
Kryptographie ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
ASYMKEY_ID |
*noch zu definieren_ |
|
ASYMKEYPROPERTY |
*noch zu definieren_ |
|
CERTENCODED |
*noch zu definieren_ |
|
CERTPRIVATEKEY |
*noch zu definieren_ |
|
DECRYPTBYASYMKEY |
*noch zu definieren_ |
|
DECRYPTBYCERT |
*noch zu definieren_ |
|
DECRYPTBYKEY |
*noch zu definieren_ |
|
DECRYPTBYKEYAUTOASYMKEY |
*noch zu definieren_ |
|
DECRYPTBYKEYAUTOCERT |
*noch zu definieren_ |
|
DECRYPTBYPASSPHRASE |
_*zu definieren_ |
Kann mit DENCRYPT_RAW nachgeahmt werden |
ENCRYPTBYASYMKEY |
*noch zu definieren_ |
|
ENCRYPTBYCERT |
*noch zu definieren_ |
|
ENCRYPTBYKEY |
*noch zu definieren_ |
|
ENCRYPTBYPASSPHRASE |
*noch zu definieren_ |
Kann mit ENCRYPT_RAW nachgeahmt werden |
HASHBYTES |
MD5, SHA1, SHA2 |
<p>Zurzeit wird nur eine getrennter Hashwert unterstützt. Verwenden Sie den richtigen nach dem erforderlichen Algorithmus</p><p>MD5 ist eine 32-Zeichen hexkodierte</p><p>SHA1 hat eine 40-Zeichen hexkodierte Zeichenfolge, die den 160-Bit</p><p>SHA2 enthält eine hexkodierte Zeichenfolge, die den N-Bit SHA-2 Nachrichtenhash enthält. Die Größen sind:</p><p>224 = SHA-224</p><p>256 = SHA-256 (Standard)</p><p>384 = SHA-384</p><p>512 = SHA-512</p> |
IS_OBJECTSIGNED |
*noch zu definieren_ |
|
KEY_GUID |
*noch zu definieren_ |
|
KEY_ID |
*noch zu definieren_ |
|
KEY_NAME |
*noch zu definieren_ |
|
SIGNBYASYMKEY |
*noch zu definieren_ |
|
SIGNBYCERT |
*noch zu definieren_ |
|
SYMKEYPROPERTY |
*noch zu definieren_ |
|
VERIGYSIGNEDBYCERT |
*noch zu definieren_ |
Cursor ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
@@CURSOR_ROWS |
*noch zu definieren_ |
|
@@FETCH_STATUS |
*noch zu definieren_ |
|
CURSOR_STATUS |
*noch zu definieren_ |
Datentyp ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
DATALENGTH |
OCTET_LENGTH |
Snowflake verwendet keine Bruchteile von Bytes, daher wird die Länge immer als 8 * OCTET_LENGTH berechnet |
IDENT_SEED |
*noch zu definieren_ |
|
IDENT_CURRENT |
*noch zu definieren_ |
|
IDENTITY |
*noch zu definieren_ |
|
IDENT_INCR |
*noch zu definieren_ |
|
SQL_VARIANT_PROPERTY |
*noch zu definieren_ |
Datum & Uhrzeit ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
@@DATEFIRST |
*noch zu definieren_ |
|
@@LANGUAGE |
*noch zu definieren_ |
|
CURRENT_TIMESTAMP |
CURRENT_TIMESTAMP |
|
CURRENT_TIMEZONE |
*noch zu definieren_ |
|
DATEADD |
DATEADD |
|
DATEDIFF |
DATEDIFF |
|
DATEDIFF_BIG |
*noch zu definieren_ |
|
DATEFROMPARTS |
DATE_FROM_PARTS |
|
DATENAME |
*noch zu definieren_ |
<p>Diese Funktion erhält zwei Argumente: ein Datumsteil und ein Datum. Sie gibt eine Zeichenfolge zurück. Hier sind die unterstützten Datumsangaben von TSQL bis Snowflake</p><p>year, yyyy, yy -> DATE_PART(YEAR, „$date“) quarter, qq, q -> DATE_PART(QUARTER, „$date“)<br>month, mm, m -> MONTHNAME(„$date“), es wird nur ein dreibuchstabiger englischer Monatsnamen angegeben<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“), es wird nur ein dreibuchstabiger englischer Tagesname angegeben<br>hour, hh -> DATE_PART(HOUR, „$date“)<br>minute, n -> DATE_PART(MINUTE, „$date“)<br>second, ss, s -> DATE_PART(SECOND, „$date“)<br>microsecond, ms -> DATE_PART(MS, „$date“) microsecond, mcs -> DATE_PART(US, „$date“)<br>nanosecond, ns -> DATE_PART(NS, „$date“)<br>TZoffset, tz -> benötigt eine spezielle Implementierung, um den Offset zu erhalten</p> |
DATEPART |
DATE_PART |
|
DATETIME2FROMPARTS |
*noch zu definieren_ |
|
DATETIMEFROMPARTS |
*noch zu definieren_ |
Kann durch eine Kombination von DATE\_FROM_PARTS und TIME\_FROM\_PARTS nachgeahmt werden |
DATETIMEOFFSETFROMPARTS |
*noch zu definieren_ |
|
DAY |
DAY |
|
EOMONTH |
*noch zu definieren_ |
Kann mit LAST_DAY nachgeahmt werden |
FORMAT |
*noch zu definieren_ |
Zuordnung zu TO_CHAR |
GETDATE |
GETDATE |
|
GETUTCDATE |
*noch zu definieren_ |
Kann mit CONVERT_TIMEZONE nachgeahmt werden |
ISDATE |
*noch zu definieren_ |
<p>Kann mit TRY_TO_DATE</p><nachgeahmt werden. p>Gibt NULL zurück, wenn der Wert kein Datum ist, andernfalls wird der Datumswert als sein Wert zurückgegeben.<br>Bei Verwendung von Operatoren wie <, >, =, <> muss dann eine NULL folgen</p> |
MONTH |
MONTH |
|
SMALLDATETIMEFROMPARTS |
*noch zu definieren_ |
Kann durch eine Kombination von DATE\_FROM_PARTS und TIME\_FROM\_PARTS nachgeahmt werden |
SWITCHOFFSET |
*noch zu definieren_ |
Kann mit CONVERT_TIMEZONE nachgeahmt werden |
SYSDATETIME |
LOCALTIME |
|
SYSDATETIMEOFFSET |
*noch zu definieren_ |
Kann mit CONVERT_TIMEZONE und LOCALTIME nachgeahmt werden |
SYSUTCDATETIME |
*noch zu definieren_ |
Kann mit CONVERT_TIMEZONE und LOCALTIME nachgeahmt werden |
TIMEFROMPARTS |
TIME_FROM_PARTS |
|
TODATETIMEOFFSET |
*noch zu definieren_ |
Kann mit CONVERT_TIMEZONE nachgeahmt werden |
YEAR |
YEAR |
JSON ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
ISJSON |
CHECK_JSON |
Das ist ein „Vorschau-Feature“ in Snowflake |
JSON_VALUE |
*noch zu definieren_ |
<p>Kann mit</p><p>TO_VARCHAR(GET_PATH(PARSE_JSON(JSON), PATH)) nachgeahmt werden</p> |
JSON_QUERY |
*noch zu definieren_ |
|
JSON_MODIFY |
*noch zu definieren_ |
Mathematisch ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
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 |
Logisch ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
CHOOSE |
*noch zu definieren_ |
Kann mit DECODE nachgeahmt werden |
GREATEST |
GREATEST |
|
IIF |
IIF |
|
LEAST |
LEAST |
|
NULLIF |
NULLIF |
Metadaten ¶
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 |
Ranking ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
DENSE_RANK |
DENSE_RANK |
|
NTILE |
NTILE |
|
RANK |
RANK |
|
ROW_NUMBER |
ROW_NUMBER |
Replikation ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
PUBLISHINGSERVERNAME |
*noch zu definieren_ |
Zeilensatz ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
OPENDATASOURCE |
*noch zu definieren_ |
|
OPENJSON |
*noch zu definieren_ |
|
QPENQUERY |
*noch zu definieren_ |
|
OPENROWSET |
*noch zu definieren_ |
|
OPENXML |
OPENXML_UDF |
Benutzerdefinierte Funktion, die als gleichwertige Verhaltensweise in Snowflake verwendet wird. |
Sicherheit ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
CERTENCODED |
*noch zu definieren_ |
|
CERTPRIVATEKEY |
*noch zu definieren_ |
|
CURRENT_USER |
CURRENT_USER |
|
DATABASE_PRINCIPAL_ID |
*noch zu definieren_ |
|
HAS_PERMS_BY_NAME |
*noch zu definieren_ |
|
IS_MEMBER |
*noch zu definieren_ |
Ändern Sie die Abfrage INFORMATION_SCHEMA, auch wenn der Kunde möglicherweise neue Rollen definieren muss |
IS_ROLEMEMBER |
*noch zu definieren_ |
<p>Snowflake hat eine ähnliche Funktion</p><p>IS_ROLE_IN_SESSION</p> |
IS_SRVROLEMEMBER |
*noch zu definieren_ |
|
LOGINPROPERTY |
*noch zu definieren_ |
|
ORIGINAL_LOGIN |
*noch zu definieren_ |
|
PERMISSIONS |
*noch zu definieren_ |
|
PWDCOMPARE |
*noch zu definieren_ |
|
PWDENCRYPT |
*noch zu definieren_ |
|
SCHEMA_ID |
*noch zu definieren_ |
|
SCHEMA_NAME |
*noch zu definieren_ |
|
SESSION_USER |
*noch zu definieren_ |
|
SUSER_ID |
*noch zu definieren_ |
|
SUSER_NAME |
*noch zu definieren_ |
|
SUSER_SID |
*noch zu definieren_ |
|
SUSER_SNAME |
*noch zu definieren_ |
|
sys.fn_builtin_permissions |
*noch zu definieren_ |
|
sys.fn_get_audit_file |
*noch zu definieren_ |
|
sys.fn_my\_permissions |
*noch zu definieren_ |
|
SYSTEM_USER |
*noch zu definieren_ |
|
USER_ID |
*noch zu definieren_ |
|
USER_NAME |
*noch zu definieren_ |
Zuordnung zu CURRENT_USER |
Zeichenfolge ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
ASCII |
ASCII |
|
CHAR |
CHR, CHAR |
|
CHARINDEX |
CHARINDEX |
|
CONCAT |
CONCAT |
|
CONCAT_WS |
CONCAT_WS |
|
COALESCE |
COALESCE |
|
DIFFERENCE |
*noch zu definieren_ |
|
FORMAT |
*noch zu definieren_ |
|
LEFT |
LEFT |
|
LEN |
LEN |
|
LOWER |
LOWER |
|
LTRIM |
LTRIM |
|
NCHAR |
*noch zu definieren_ |
|
PATINDEX |
*noch zu definieren_ |
Zuordnung zu REGEXP_INSTR |
QUOTENAME |
QUOTENAME_UDF |
Es wird eine UDF erstellt, um die gleiche Verhaltensweise der Funktion Quotename zu emulieren |
REPLACE |
REPLACE |
|
REPLICATE |
REPEAT |
|
REVERSE |
REVERSE |
|
RIGHT |
RIGHT |
|
RTRIM |
RTRIM |
|
SOUNDEX |
SOUNDEX |
|
SPACE |
*noch zu definieren_ |
|
STR |
*noch zu definieren_ |
|
STRING_AGG |
*noch zu definieren_ |
|
STRING_ESCAPE |
*noch zu definieren_ |
|
STRING_SPLIT |
SPLIT_TO_TABLE |
|
STUFF |
*noch zu definieren_ |
CREATE OR REPLACE FUNCTION STUFF(S-string, STARTPOS int, LENGTH int, NEWSTRING string) RETURNS-Zeichenfolge LANGUAGE SQL AS ‚ left(S, STARTPOS) |
SUBSTRING |
SUBSTRING |
|
TRANSLATE |
TRANSLATE |
|
TRIM |
TRIM |
|
UNICODE |
UNICODE |
|
UPPER |
UPPER |
System ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
$PARTITION |
*noch zu definieren_ |
|
@@ERROR |
*noch zu definieren_ |
|
@@IDENTITY |
*noch zu definieren_ |
Wenn dies erforderlich ist, würde ich empfehlen, Sequenzen zu verwenden und den Wert vor dem Einfügen zu erfassen |
@@PACK_RECEIVED |
*noch zu definieren_ |
|
@@ROWCOUNT |
*noch zu definieren_ |
|
@@TRANCOUNT |
*noch zu definieren_ |
|
BINARY_CHECKSUM |
*noch zu definieren_ |
|
CHECKSUM |
*noch zu definieren_ |
|
COMPRESS |
COMPRESS |
<p>Die Version von Snowflake hat ein Methoden-Argument, um die Komprimierungsmethode anzugeben. Dies sind die gültigen Werte: SNAPPY, ZLIB, ZSTD, BZ2</p><p>Der Komprimierungsgrad wird in Klammern angegeben und muss eine nicht-negative ganze Zahl sein</p> |
CONNECTIONPROPERTY |
*noch zu definieren_ |
|
CONTEXT_INFO |
*noch zu definieren_ |
|
CURRENT_REQUEST_ID |
*noch zu definieren_ |
|
CURRENT_TRANSACTION_ID |
*noch zu definieren_ |
|
DECOMPRESS |
*noch zu definieren_ |
Snowflake verfügt dafür über zwei Funktionen: DECOMPRESS_BINARY und DECOMPRESS_STRING |
ERROR_LINE |
*noch zu definieren_ |
ERROR wird der _LINE-Hilfsfunktion zugeordnet. EXEC-Hilfsfunktion erfasst die Eigenschaft der Ausnahme-Zeile aus der Stapelverfolgung. |
ERROR_MESSAGE |
SQLERRM |
|
ERROR_NUMBER |
*noch zu definieren_ |
ERROR wird der _NUMBER-Hilfsfunktion zugeordnet. EXEC-Hilfsfunktion erfasst die Eigenschaft Ausnahmecode. |
ERROR_PROCEDURE |
*noch zu definieren_ |
Wird ERROR_PROCEDURE zugewiesen, das der Eigenschaft |
ERROR_SEVERITY |
*noch zu definieren_ |
|
ERROR_STATE |
*noch zu definieren_ |
Hilfsfunktion erfasst die Eigenschaft Ausnahmezustand |
FORMATMESSAGE |
FORMATEMESSAGE_UDF |
Es wird eine UDF erstellt, um die gleiche Verhaltensweise der Funktion FORMATMESSAGE zu emulieren, allerdings mit einigen Beschränkungen. |
GET_FILESTREAM_TRANSACTION_CONTEXT |
*noch zu definieren_ |
|
GETANSINULL |
*noch zu definieren_ |
|
HOST_ID |
*noch zu definieren_ |
|
HOST_NAME |
*noch zu definieren_ |
|
ISNULL |
NVL |
|
ISNUMERIC |
*noch zu definieren_ |
Es gibt keine direkte Entsprechung, aber es kann einer benutzerdefinierten UDF zugeordnet werden, die die gleichen Werte wie in TSQL zurückgibt. |
MIN_ACTIVE_ROWVERSION |
*noch zu definieren_ |
|
NEWID |
*noch zu definieren_ |
Zuordnung zu UUID_STRING |
NEWSEQUENTIALID |
*noch zu definieren_ |
|
ROWCOUNT_BIG |
*noch zu definieren_ |
|
SESSION_CONTEXT |
*noch zu definieren_ |
|
SESSION_ID |
*noch zu definieren_ |
|
XACT_STATE |
*noch zu definieren_ |
|
Systemstatistik ¶
TransactSql |
Snowflake |
Anmerkungen |
---|---|---|
@@CONNECTIONS |
*noch zu definieren_ |
<p>Snowflake bietet eine ähnliche Funktion: LOGIN_HISTORY.</p><p>Liefert Anmeldeereignisse innerhalb eines bestimmten Zeitraums</p> |
@@PACK_RECEIVED |
*noch zu definieren_ |
|
@@CPU_BUSY |
*noch zu definieren_ |
|
@@PACK_SENT |
*noch zu definieren_ |
|
@@TIMETICKS |
*noch zu definieren_ |
|
@@IDLE |
*noch zu definieren_ |
|
@@TOTAL_ERRORS |
*noch zu definieren_ |
|
@@IO_BUSY |
*noch zu definieren_ |
|
@@TOTAL_READ |
*noch zu definieren_ |
|
@@PACKET_ERRORS |
*noch zu definieren_ |
|
@@TOTAL_WRITE |
*noch zu definieren_ |
Text & Bild ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
TEXTPTR |
*noch zu definieren_ |
|
TEXTVALID |
*noch zu definieren_ |
Trigger ¶
TransactSQL |
Snowflake |
Anmerkungen |
---|---|---|
COLUMNS_UPDATED |
*noch zu definieren_ |
|
EVENTDATA |
*noch zu definieren_ |
|
TRIGGER_NESTLEVEL |
*noch zu definieren_ |
|
UPDATE |
*noch zu definieren_ |
Systemfunktionen¶
ISNULL¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Ersetzt NULL durch den angegebenen Ersatzwert. (ISNULL in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
ISNULL ( check_expression , replacement_value )
NVL( <expr1> , <expr2> )
Beispiele¶
Code:
SELECT ISNULL(NULL, 'SNOWFLAKE') AS COMPANYNAME;
Ergebnis:
+-----------+
|COMPANYNAME|
+-----------+
|SNOWFLAKE |
+-----------+
Code:
SELECT
NVL(NULL, 'SNOWFLAKE') AS COMPANYNAME;
Ergebnis:
+-----------+
|COMPANYNAME|
+-----------+
|SNOWFLAKE |
+-----------+
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
NEWID¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Erzeugt einen eindeutigen Wert vom Typ „eindeutiger Bezeichner“. (NEWID in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
NEWID ( )
UUID_STRING()
Beispiele¶
Warnung
Die Ausgaben können abweichen, da zur Laufzeit eine eindeutige ID generiert wird
Code:
SELECT NEWID ( ) AS ID;
Ergebnis:
+------------------------------------+
|ID |
+------------------------------------+
|47549DDF-837D-41D2-A59C-A6BC63DF7910|
+------------------------------------+
Code:
SELECT
UUID_STRING( ) AS ID;
Ergebnis:
+------------------------------------+
|ID |
+------------------------------------+
|6fd4312a-7925-4ad9-85d8-e039efd82089|
+------------------------------------+
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
NULLIF¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen Nullwert zurück, wenn die beiden angegebenen Ausdrücke gleich sind.
Beispielhaftes Quellcode-Muster¶
Syntax¶
NULLIF ( check_expression , replacement_value )
NULLIF( <expr1> , <expr2> )
Beispiele¶
Code:
SELECT NULLIF(6,9) AS RESULT1, NULLIF(5,5) AS RESULT2;
Ergebnis:
+-------+-------+
|RESULT1|RESULT2|
+-------+-------+
|6 |null |
+-------+-------+
Code:
SELECT
NULLIF(6,9) AS RESULT1,
NULLIF(5,5) AS RESULT2;
Ergebnis:
+-------+-------+
|RESULT1|RESULT2|
+-------+-------+
|6 |null |
+-------+-------+
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
@@ROWCOUNT¶
Applies to
[x] SQL Server
Beschreibung¶
Gibt die Anzahl der Zeilen zurück, die von der letzten Anweisung betroffen sind. (@@ROWCOUNT in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
@@ROWCOUNT
SQLROWCOUNT
Beispiele¶
Code:
CREATE TABLE table1
(
column1 INT
);
CREATE PROCEDURE procedure1
AS
BEGIN
declare @addCount int = 0;
INSERT INTO table1 (column1) VALUES (1),(2),(3);
set @addCount = @addCount + @@ROWCOUNT
select @addCount
END
;
GO
EXEC procedure1;
Ergebnis:
+-+
| |
+-+
|3|
+-+
Code:
CREATE OR REPLACE TABLE table1
(
column1 INT
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "transact", "convertedOn": "11/13/2024", "domain": "test" }}'
;
CREATE OR REPLACE PROCEDURE procedure1 ()
RETURNS TABLE()
LANGUAGE SQL
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "transact", "convertedOn": "11/13/2024", "domain": "test" }}'
EXECUTE AS CALLER
AS
$$
DECLARE
ADDCOUNT INT := 0;
ProcedureResultSet RESULTSET;
BEGIN
INSERT INTO table1 (column1) VALUES (1),(2),(3);
ADDCOUNT := :ADDCOUNT + SQLROWCOUNT;
ProcedureResultSet := (
select
:ADDCOUNT);
RETURN TABLE(ProcedureResultSet);
END;
$$;
CALL procedure1();
Ergebnis:
+----------+
|:ADDCOUNT |
+----------+
| 3 |
+----------+
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
FORMATMESSAGE¶
Applies to
[x] SQL Server
Beschreibung¶
Konstruiert eine Meldung aus einer vorhandenen Meldung in sys.messages oder aus einer angegebenen Zeichenfolge. (FORMATMESSAGE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Da Snowflake die Funktion FORMATMESSAGE
nicht unterstützt, wird die Funktion FORMATMESSAGE_UDF hinzugefügt, um ihre Verhaltensweise zu simulieren.
Syntax¶
FORMATMESSAGE ( { msg_number | ' msg_string ' | @msg_variable} , [ param_value [ ,...n ] ] )
Beispiele¶
Code:
SELECT FORMATMESSAGE('This is the %s and this is the %s.', 'first variable', 'second variable') AS RESULT;
Ergebnis:
RESULT|
-----------------------------------------------------------+
This is the first variable and this is the second variable.|
Code:
SELECT
--** SSC-FDM-TS0008 - FORMATMESSAGE WAS CONVERTED TO CUSTOM UDF FORMATMESSAGE_UDF AND IT MIGHT HAVE A DIFFERENT BEHAVIOR. **
FORMATMESSAGE_UDF('This is the %s and this is the %s.', ARRAY_CONSTRUCT('first variable', 'second variable')) AS RESULT;
Ergebnis:
RESULT |
-----------------------------------------------------------+
This is the first variable and this is the second variable.|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
[SSC-FDM-TS0008](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/sqlServerFDM. md#ssc-fdm-ts0008): FORMATMESSAGE Funktion wurde in UDF umgewandelt.
FORMATMESSAGE_UDF¶
Snowflake verfügt nicht über eine Funktion mit dem Funktionsumfang von FORMATMESSAGE
. SnowConvert erzeugt die folgende Python-UDF, um die Verhaltensweise von FORMATMESSAGE
zu emulieren.
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,)
$$;
Diese UDF funktioniert in manchen Fällen nicht korrekt:
Die Verwendung des Platzhalters
%I64d
führt zu einem Fehler.Wenn die Anzahl der Substitutionsargumente nicht mit der Anzahl der Platzhalter übereinstimmt, wird ein Fehler ausgegeben.
Einige vorzeichenlose Platzhalter wie
%u
oder%X
verhalten sich bei der Formatierung des Wertes nicht korrekt.Sie kann nicht mit Nachrichten_ids umgehen.
Zeichenfolgenfunktionen¶
CHAR¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt ein Ein-Byte-Zeichen mit der Ganzzahl zurück, die als Parameter in der Tabelle ASCII (CHAR in Transact-SQL) gesendet wurde.
Beispielhaftes Quellcode-Muster¶
Syntax¶
CHAR( expression )
Vollständige Dokumentation zu Snowflake-SQL
{CHR | CHAR} ( <input> )
Vollständige Dokumentation zu JavaScript
String.fromCharCode( expression1, ... , expressionN )
Beispiele¶
Eingabe:
SELECT CHAR(170) AS SMALLEST_A
Ausgabe:
SMALLEST_A|
-----------+
ª|
Code:
SELECT
CHAR(170) AS SMALLEST_A;
Ergebnis:
SMALLEST_A|
-----------+
ª|
Code:
CREATE OR REPLACE FUNCTION get_char(expression float)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
return String.fromCharCode( EXPRESSION );
$$;
SELECT GET_CHAR(170) SMALLEST_A;
Ergebnis:
SMALLEST_A|
-----------+
ª|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
CHARINDEX¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt den Index des ersten Vorkommens des angegebenen Wertes zurück, der als Parameter gesendet wurde, wenn er übereinstimmt (CHARINDEX in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
CHARINDEX( expression_to_find, expression_to_search [, start] )
Vollständige Dokumentation zu Snowflake-SQL
CHARINDEX( <expr1>, <expr2> [ , <start_pos> ] )
Vollständige Dokumentation zu JavaScript
String.indexOf( search_value [, index] )
Beispiele¶
Code:
SELECT CHARINDEX('t', 'Customer') AS MatchPosition;
Ergebnis:
INDEX|
-----------+
33|
Code:
SELECT
CHARINDEX('t', 'Customer') AS MatchPosition;
Ergebnis:
INDEX|
-----------+
33|
Bemerkung
Indizes in Transact beginnen bei 1, anstelle von JavaScript, die bei 0 beginnen.
Code:
CREATE OR REPLACE FUNCTION get_index
(
expression_to_find varchar,
expression_to_search varchar,
start_index float
)
RETURNS float
LANGUAGE JAVASCRIPT
AS
$$
return EXPRESSION_TO_SEARCH.indexOf(EXPRESSION_TO_FIND, START_INDEX)+1;
$$;
SELECT GET_INDEX('and', 'Give your heart and soul to me, and life will always be la vie en rose', 20) AS INDEX;
Ergebnis:
INDEX|
-----------+
33|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
COALESCE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Wertet die Argumente der Reihe nach aus und gibt den aktuellen Wert des ersten Ausdrucks zurück, der zunächst nicht den Wert NULL ergibt. Zum Beispiel gibt SELECT COALESCE(NULL, NULL, ‚third_value‘, ‚fourth_value‘); den dritten Wert zurück, weil der dritte Wert der erste Wert ist, der nicht null ist. (COALESCE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
COALESCE ( expression [ ,...n ] )
COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )
Beispiele¶
Code:
SELECT TOP 10 StartDate,
COALESCE(EndDate,'2000-01-01') AS FIRST_NOT_NULL
FROM HumanResources.EmployeeDepartmentHistory
Ergebnis:
StartDate |FIRST_NOT_NULL|
----------+--------------+
2009-01-14| 2000-01-01|
2008-01-31| 2000-01-01|
2007-11-11| 2000-01-01|
2007-12-05| 2010-05-30|
2010-05-31| 2000-01-01|
2008-01-06| 2000-01-01|
2008-01-24| 2000-01-01|
2009-02-08| 2000-01-01|
2008-12-29| 2000-01-01|
2009-01-16| 2000-01-01|
Code:
SELECT TOP 10
StartDate,
COALESCE(EndDate,'2000-01-01') AS FIRST_NOT_NULL
FROM
HumanResources.EmployeeDepartmentHistory;
Ergebnis:
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
CONCAT¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Erzeugt eine Verkettung von Zeichenfolgenwerten mit anderen. (CONCAT in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
CONCAT ( string_value1, string_value2 [, string_valueN ] )
Vollständige Dokumentation zu Snowflake-SQL
CONCAT( <expr1> [ , <exprN> ... ] )
<expr1> || <expr2> [ || <exprN> ... ]
Vollständige Dokumentation zu JavaScript
String.concat( expression1, ..., expressionN )
Beispiele¶
Code:
SELECT CONCAT('Ray',' ','of',' ','Light') AS TITLE;
Ausgabe:
TITLE|
------------+
Ray of Light|
Code:
SELECT
CONCAT('Ray',' ','of',' ','Light') AS TITLE;
Ausgabe:
TITLE|
------------+
Ray of Light|
Code:
CREATE OR REPLACE FUNCTION concatenate_strs(strings array)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
var result = ""
STRINGS.forEach(element => result = result.concat(element));
return result;
$$;
SELECT concatenate_strs(array_construct('Ray',' ','of',' ','Light')) TITLE;
\ Ausgabe:
TITLE|
------------+
Ray of Light|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LEFT¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt den rechten Teil einer Zeichenfolge mit der angegebenen Anzahl von Zeichen zurück. (RIGHT in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
LEFT ( character_expression , integer_expression )
Vollständige Dokumentation zu Snowflake-SQL
LEFT ( <expr> , <length_expr> )
Funktion zur Emulation des Verhaltens
function LEFT(string, index){
if(index < 0){
throw new RangeError('Invalid INDEX on LEFT function');
}
return string.slice( 0, index);
}
return LEFT(STR, INDEX);
Beispiele¶
Code:
SELECT LEFT('John Smith', 5) AS FIRST_NAME;
Ausgabe:
FIRST_NAME|
----------+
John |
Code:
SELECT LEFT('John Smith', 5) AS FIRST_NAME;
Ausgabe:
FIRST_NAME|
----------+
John |
Code:
CREATE OR REPLACE FUNCTION left_str(str varchar, index float)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
function LEFT(string, index){
if(index < 0){
throw new RangeError('Invalid INDEX on LEFT function');
}
return string.slice( 0, index);
}
return LEFT(STR, INDEX);
$$;
SELECT LEFT_STR('John Smith', 5) AS FIRST_NAME;
\ Ausgabe:
FIRST_NAME|
----------+
John |
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LEN¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt die Länge einer Zeichenfolge zurück (LEN in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
LEN( string_expression )
Vollständige Dokumentation zu Snowflake-SQL
LENGTH( <expression> )
LEN( <expression> )
Vollständige Dokumentation zu JavaScript SQL
string.length
Beispiele¶
Code:
SELECT LEN('Sample text') AS [LEN];
Ausgabe:
LEN|
---+
11|
Code:
SELECT LEN('Sample text') AS LEN;
Ausgabe:
LEN|
---+
11|
Code:
CREATE OR REPLACE FUNCTION get_len(str varchar)
RETURNS float
LANGUAGE JAVASCRIPT
AS
$$
return STR.length;
$$;
SELECT GET_LEN('Sample text') LEN;
\ Ausgabe:
LEN|
---+
11|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LOWER¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Konvertiert eine Zeichenfolge in Kleinbuchstaben (LOWER in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
LOWER ( character_expression )
Vollständige Dokumentation zu Snowflake-SQL
LOWER( <expr> )
Vollständige Dokumentation zu JavaScript SQL
String.toLowerCase( )
Beispiele¶
Code:
SELECT LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') AS LOWERCASE;
Ausgabe:
LOWERCASE |
-------------------------------------+
you are a prediction of the good ones|
Code:
SELECT LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') AS LOWERCASE;
Ausgabe:
LOWERCASE |
-------------------------------------+
you are a prediction of the good ones|
Code:
CREATE OR REPLACE FUNCTION to_lower(str varchar)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
return STR.toLowerCase();
$$;
SELECT TO_LOWER('YOU ARE A PREDICTION OF THE GOOD ONES') LOWERCASE;
\ Ausgabe:
LOWERCASE |
-------------------------------------+
you are a prediction of the good ones|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
NCHAR¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt das UNICODE Zeichen einer Ganzzahl zurück, die als Parameter gesendet wurde (NCHAR in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
NCHAR( expression )
Argumente¶
expression
: Ganzzahl-Ausdruck.
Return Type¶
Zeichenfolgenwert, er hängt von der empfangenen Eingabe ab.
Beispiele¶
SELECT NCHAR(170);
|
------------+
ª|
Bemerkung
Die Entsprechung für diese Funktion in JavaScript ist in CHAR dokumentiert.
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
REPLACE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Ersetzt alle Vorkommen eines angegebenen Zeichenfolgenwertes durch einen anderen Zeichenfolgenwert. (REPLACE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
REPLACE ( string_expression , string_pattern , string_replacement )
Vollständige Dokumentation zu Snowflake-SQL
REPLACE( <subject> , <pattern> [ , <replacement> ] )
String.replace( pattern, new_expression)
Beispiele¶
Code:
SELECT REPLACE('Real computer software', 'software','science') AS COLUMNNAME;
Ausgabe:
COLUMNNAME |
---------------------+
Real computer science|
Code:
SELECT REPLACE('Real computer software', 'software','science') AS COLUMNNAME;
Ausgabe:
COLUMNNAME |
---------------------+
Real computer science|
Code:
CREATE OR REPLACE FUNCTION REPLACER (str varchar, pattern varchar, new_expression varchar)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
return STR.replace( PATTERN, NEW_EXPRESSION );
$$;
SELECT REPLACER('Real computer software', 'software', 'science') AS COLUMNNAME;
\ Ausgabe:
COLUMNNAME |
---------------------+
Real computer science|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
REPLICATE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Wiederholt einen Zeichenfolgenwert eine bestimmte Anzahl von Malen (REPLICATE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
REPLICATE( string_expression, number_expression )
REPEAT(<input>, <n>)
String.repeat( number_expression )
Beispiele¶
Code:
SELECT REPLICATE('Staying alive',5) AS RESULT
Ergebnis:
RESULT |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|
Code:
SELECT REPEAT('Staying alive',5) AS RESULT;
Ergebnis:
RESULT |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|
Code:
CREATE OR REPLACE FUNCTION REPEAT_STR (str varchar, occurrences float)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
return STR.repeat( OCCURRENCES );
$$;
SELECT REPEAT_STR('Staying alive ', 5) AS RESULT;
Ergebnis:
RESULT |
-----------------------------------------------------------------+
Staying aliveStaying aliveStaying aliveStaying aliveStaying alive|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
RIGHT¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt den rechten Teil einer Zeichenfolge mit der angegebenen Anzahl von Zeichen zurück. (RIGHT in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
RIGHT ( character_expression , integer_expression )
Vollständige Dokumentation zu Snowflake-SQL
RIGHT( <expr> , <length_expr> )
UDF verwendet, um die Verhaltensweise zu emulieren
function RIGHT(string, index){
if(index< 0){
throw new RangeError('Invalid INDEX on RIGHT function');
}
return string.slice( string.length - index, string.length );
}
Beispiele¶
Code:
SELECT RIGHT('John Smith', 5) AS LAST_NAME;
Ausgabe:
LAST_NAME|
------------+
Smith|
Code:
SELECT RIGHT('John Smith', 5) AS LAST_NAME;
Ausgabe:
LAST_NAME|
------------+
Smith|
Code:
CREATE OR REPLACE FUNCTION right_str(str varchar, index float)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
function RIGHT(string, index){
if(index< 0){
throw new RangeError('Invalid INDEX on RIGHT function');
}
return string.slice( string.length - index, string.length );
}
return RIGHT(STR, INDEX);
$$;
SELECT RIGHT_STR('John Smith', 5) AS LAST_NAME;
\ Ausgabe:
LAST_NAME|
------------+
Smith|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
RTRIM¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen Zeichenausdruck zurück, nachdem das führende Leerzeichen entfernt wurde (RTRIM in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
RTRIM( string_expression )
Vollständige Dokumentation zu Snowflake-SQL
RTRIM(<expr> [, <characters> ])
Benutzerdefinierte Funktion, um die Verhaltensweise zu emulieren
function RTRIM(string){
return string.replace(/s+$/,"");
}
Beispiele¶
Eingabe:
SELECT RTRIM('LAST TWO BLANK SPACES ') AS [RTRIM]
Ausgabe:
RTRIM |
---------------------+
LAST TWO BLANK SPACES|
Code:
SELECT RTRIM('LAST TWO BLANK SPACES ') AS RTRIM;
Ergebnis:
RTRIM |
---------------------+
LAST TWO BLANK SPACES|
Code:
CREATE OR REPLACE FUNCTION rtrim(str varchar)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
function RTRIM(string){
return string.replace(/s+$/,"");
}
return RTRIM( STR );
$$;
SELECT RTRIM('LAST TWO BLANK SPACES ') AS RTRIM;
Ergebnis:
RTRIM |
---------------------+
LAST TWO BLANK SPACES|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SPACE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt die Anzahl der Vorkommen von Leerzeichen zurück (SPACE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
SPACE ( integer_expression )
Vollständige Dokumentation zu Snowflake-SQL
SPACE(<n>)
Benutzerdefinierte Funktion, um die Verhaltensweise zu emulieren
function SPACE( occurrences ){
return ' '.repeat( occurrences );
}
Beispiele¶
Eingabe:
SELECT CONCAT('SOME', SPACE(5), 'TEXT') AS RESULT;
Ausgabe:
RESULT |
-------------+
SOME TEXT|
Eingabe:
SELECT CONCAT('SOME', SPACE(5), 'TEXT') AS RESULT;
Ausgabe:
RESULT |
-------------+
SOME TEXT|
Eingabe:
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;
Ausgabe:
RESULT |
-------------+
SOME TEXT|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SUBSTRING¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen Zeichenausdruck zurück, nachdem das führende Leerzeichen entfernt wurde (RTRIM in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
SUBSTRING( string_expression, start, length )
Vollständige Dokumentation zu Snowflake-SQL
SUBSTR( <base_expr>, <start_expr> [ , <length_expr> ] )
SUBSTRING( <base_expr>, <start_expr> [ , <length_expr> ] )
Benutzerdefinierte Funktion, um die Verhaltensweise zu emulieren
string.substring( indexA [, indexB])
Beispiele¶
Eingabe:
SELECT SUBSTRING('abcdef', 2, 3) AS SOMETEXT;
Ausgabe:
SOMETEXT|
--------+
bcd |
Code:
SELECT SUBSTRING('abcdef', 2, 3) AS SOMETEXT;
Ergebnis:
SOMETEXT|
--------+
bcd |
Code:
CREATE OR REPLACE FUNCTION REPLACER_LENGTH(str varchar, index float, length float)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
var start = INDEX - 1;
var end = STR.length - (LENGTH - 1);
return STR.substring(start, end);
$$;
SELECT REPLACER_LENGTH('abcdef', 2, 3) AS SOMETEXT;
Ergebnis:
SOMETEXT|
--------+
bcd |
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
UPPER¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Konvertiert eine Zeichenfolge in Großbuchstaben (UPPER in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
UPPER( string_expression )
Vollständige Dokumentation zu Snowflake-SQL
UPPER( <expr> )
Vollständige Dokumentation zu JavaScript SQL
String.toUpperCase( )
Beispiele¶
Code:
SELECT UPPER('you are a prediction of the good ones') AS [UPPER]
Ausgabe:
+-------------------------------------+
|UPPER |
+-------------------------------------+
|YOU ARE A PREDICTION OF THE GOOD ONES|
+-------------------------------------+
Code:
SELECT
UPPER('you are a prediction of the good ones') AS UPPER;
Ausgabe:
+-------------------------------------+
|UPPER |
+-------------------------------------+
|YOU ARE A PREDICTION OF THE GOOD ONES|
+-------------------------------------+
Code:
CREATE OR REPLACE FUNCTION to_upper(str varchar)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
return STR.toUpperCase();
$$;
SELECT TO_UPPER('you are a prediction of the good ones') UPPER;
\ Ausgabe:
UPPER |
-------------------------------------+
YOU ARE A PREDICTION OF THE GOOD ONES|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ASCII¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt den Zahlencode eines Zeichens aus der Tabelle ASCII zurück (ASCII in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
ASCII( expression )
Argumente¶
Ausdruck
: VARCVHAR
oder CHAR
Ausdruck.
Return Type¶
INT
.
Beispiele¶
SELECT ASCII('A') AS A , ASCII('a') AS a;
A| a|
-----------+ ----------+
65| 97|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ASCII in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt den Zahlencode eines Zeichens aus der Tabelle ASCII zurück (Dokumentation zur JavaScript-Funktion charCodeAt).
Beispielhaftes Quellcode-Muster¶
Syntax¶
string.charCodeAt( [index] )
Argumente¶
index
(Optional): Index der Zeichenfolge, um das Zeichen zu erhalten und seine Codenummer in der Tabelle ASCII zurückzugeben. Wenn dieser Parameter nicht angegeben wird, ist die Voreinstellung 0. \
Return Type¶
Int
.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
QUOTENAME¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt eine durch Anführungszeichen begrenzte Zeichenfolge zurück (QUOTENAME in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
QUOTENAME( string_expression [, quote_character])
Argumente¶
string_expression
: Zeichenfolge zur Abgrenzung.
quote_character
: ein Zeichen zur Abgrenzung der Zeichenfolge.
Return Type¶
NVARCHAR(258)
. Null, wenn sich das Anführungszeichen von (‚), ([]), („), ( () ), ( >< ), ({}) oder (`) unterscheidet.
Beispiele¶
SELECT QUOTENAME('Hello', '`') AS HELLO;
HELLO|
---------+
`Hello`|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
QUOTENAME in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Leider ist diese Funktion in JavaScript nicht verfügbar, aber sie kann mit Hilfe von vordefinierten Funktionen implementiert werden.
Beispielhaftes Quellcode-Muster¶
Beispiel für die Implementierung¶
function QUOTENAME(string, quote){
return quote.concat(string, quote);
}
Argumente¶
string
: Zeichenfolgenausdruck zur Abgrenzung.
quote
: Anführungszeichen, die als Trennzeichen verwendet werden.
Return Type¶
Zeichenfolge
Beispiele¶
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`|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
CONCAT_WS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Erzeugt eine Verkettung von Zeichenfolgenwerten mit anderen, wobei ein Trennzeichen zwischen ihnen verwendet wird (CONCAT_WS in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
CONCAT_WS( separator, expression1, ... ,expressionN )
Argumente¶
separator
: Trennzeichen zur Verknüpfung.
expression1, ... ,expressionN:
Der zu suchende Ausdruck wird in eine Zeichenfolge umgewandelt.
Return Type¶
Zeichenfolgenwert, abhängig von der empfangenen Eingabe.
Beispiele¶
SELECT CONCAT_WS(' ', 'Mariah','Carey') AS NAME;
NAME|
------------+
Mariah Carey|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Verknüpfung in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Verkettet die Zeichenfolgenargumente mit der aufrufenden Zeichenfolge unter Verwendung eines Trennzeichens (Dokumentation zur JavaScript-Funktion Join).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Array.join( separator )
Argumente¶
separator
: Zeichen zumr Verknüpfung.
Return Type¶
String
.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SOUNDEX¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen vierstelligen Code zur Bewertung der Ähnlichkeit zweier Zeichenfolgen zurück (SOUNDEX in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
SOUNDEX( string_expression )
Argumente¶
string_expression
: Zeichenfolgenausdruck zum Umkehren.
Return Type¶
Derselbe Datentyp des als Parameter gesendeten Zeichenfolgenausdrucks.
Beispiele¶
SELECT SOUNDEX('two') AS TWO , SOUNDEX('too') AS TOO;
TWO| TOO|
---------+---------+
T000| T000|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SOUNDEX in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Leider stellt JavaScript keine Methode zur Verfügung, die den SOUNDEX-Algorithmus ausführt, aber er kann manuell implementiert werden.
Beispielhaftes Quellcode-Muster¶
Beispiel für die Implementierung¶
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));
}
Argumente¶
word
: Zeichenfolgenausdruck, um seine SOUNDEX Entsprechung zu erhalten.
Return Type¶
Zeichenfolge
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
REVERSE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Kehrt eine Zeichenfolge um (REVERSE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
REVERSE( string_expression )
Argumente¶
string_expression
: Zeichenfolgenausdruck zum Umkehren.
Return Type¶
Derselbe Datentyp des als Parameter gesendeten Zeichenfolgenausdrucks.
Beispiele¶
SELECT REVERSE('rotator') AS PALINDROME;
PALINDROME|
----------------+
rotator|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Umkehrung in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Leider ist diese Funktion in JavaScript nicht verfügbar, aber sie kann mit Hilfe von vordefinierten Funktionen implementiert werden.
Beispielhaftes Quellcode-Muster¶
Beispiel für die Implementierung¶
function REVERSE(string){
return string.split("").reverse().join("");
}
Argumente¶
string
: Umzukehrender Zeichenfolgenausdruck.
Return Type¶
Zeichenfolge
Beispiele¶
CREATE OR REPLACE FUNCTION REVERSE(str varchar)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
return STR.split("").reverse().join("");
$$;
SELECT REVERSE('rotator') PALINDROME;
PALINDROME|
----------------+
rotator|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
STRING_ESCAPE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Escape-Sonderzeichen in Texten und gibt den Text mit den Escape-Zeichen zurück. (STRING\ESCAPE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
STRING_ESCAPE( text, type )
Argumente¶
text
: Text zum Ausblenden von Escape-Zeichen.
type
: Format-Typ für Escape-Zeichen. Derzeit wird nur das Format JSON unterstützt.
Return Type¶
VARCHAR
.
Beispiele¶
SELECT STRING_ESCAPE('\ / \\ " ', 'json') AS [ESCAPE];
ESCAPE|
--------------------------+
\\ \/ \\\\ \" |
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Stringify in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Konvertiert ein Objekt in ein JSON Zeichenfolgenformat (Dokumentation zur JavaScript-Funktion Stringify).
Beispielhaftes Quellcode-Muster¶
Syntax¶
JSON.stringify( value )
Argumente¶
value
: Zu konvertierender Objektausdruck.
Return Type¶
Zeichenfolge
Beispiele¶
CREATE OR REPLACE FUNCTION string_escape (str varchar)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
return JSON.stringify( STR );
$$;
SELECT STRING_ESCAPE('\ / \\ " ') ESCAPE;
ESCAPE|
--------------------------+
\\ \/ \\\\ \" |
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
TRIM¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen Zeichenausdruck ohne Leerzeichen zurück (TRIM in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
TRIM( string_expression )
Argumente¶
string_expression:
Zu konvertierende Zeichenfolgenausdrücke.
Return Type¶
VARCHAR
oder NVARCHAR
Beispiele¶
Code:
SELECT TRIM(' FIRST AND LAST TWO BLANK SPACES ') AS [TRIM];
Ausgabe:
+-------------------------------+
|TRIM |
+-------------------------------+
|FIRST AND LAST TWO BLANK SPACES|
+-------------------------------+
Code:
SELECT TRIM(' FIRST AND LAST TWO BLANK SPACES ') AS TRIM;
Ausgabe:
+-------------------------------+
|TRIM |
+-------------------------------+
|FIRST AND LAST TWO BLANK SPACES|
+-------------------------------+
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Trim in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Ersetzt die Vorkommen eines Musters durch ein neues, das als Parameter übergeben wird (Dokumentation zur JavaScript-Funktion Replace).
Beispielhaftes Quellcode-Muster¶
Syntax¶
String.trim( )
Argumente¶
Diese Funktion erhält keine Parameter.
Return Type¶
Zeichenfolge
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
DIFFERENCE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt eine ganze Zahl zurück, die den Unterschied zwischen zwei Zeichenfolgen unter Verwendung des SOUNDEX-Algorithmus misst (DIFFERENCE in Transact-SQL). \ Es zählt die gemeinsamen Zeichen der Zeichenfolgen, die sich aus der Ausführung des SOUNDEX-Algorithmus ergeben.
Beispielhaftes Quellcode-Muster¶
Syntax¶
DIFFERENCE( expression1, expression1 )
Argumente¶
expression1, expression2:
Zeichenfolgenausdrücke, die verglichen werden sollen.
Return Type¶
Int
.
Beispiele¶
SELECT DIFFERENCE('Like', 'Mike');
Output |
-----------|
3 |
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
DIFFERENCE in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Leider ist diese Funktion in JS nicht verfügbar, aber sie kann leicht implementiert werden.
Bemerkung
Diese Funktion erfordert die Implementierung des SOUNDEX-Algorithmus.
Beispielhaftes Quellcode-Muster¶
Beispiel für die Implementierung¶
function DIFFERENCE(strA, strB) {
var count = 0;
for (var i = 0; i < strA.length; i++){
if ( strA[i] == strB[i] ) count++;
}
return count;
}
Argumente¶
strA, strB
: Zeichenfolgenausdrücke, die durch die Ausführung des SOUNDEX-Algorithmus entstehen.
Return Type¶
String
.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
FORMAT¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen Wert zurück, der mit dem angegebenen Format und der optionalen Kultur formatiert ist (FORMAT in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
FORMAT( value, format [, culture])
Argumente¶
value:
Zeichenfolgenausdrücke, die das Format angeben.
format: Gewünschtes Format.
culture (Optional): NVarchar Argument zur Angabe der Kultur. Wenn es nicht angegeben wird, werden die Sprachen der aktuellen Sitzung verwendet.
Return Type¶
NULL wenn der Culture-Parameter ungültig ist, andernfalls folgt er den nächsten Datentypen:
Kategorie |
.NET Typ |
|
---|---|---|
Numerisch |
bigint |
Int64 |
Numerisch |
int |
Int32 |
Numerisch |
smallint |
Int16 |
Numerisch |
tinyint |
Byte |
Numerisch |
decimal |
SqlDecimal |
Numerisch |
numeric |
SqlDecimal |
Numerisch |
float |
Double |
Numerisch |
real |
Single |
Numerisch |
smallmoney |
Dezimalzahl |
Numerisch |
money |
Dezimalzahl |
Datum und Uhrzeit |
date |
DateTime |
Datum und Uhrzeit |
time |
TimeSpan |
Datum und Uhrzeit |
datetime |
DateTime |
Datum und Uhrzeit |
smalldatetime |
DateTime |
Datum und Uhrzeit |
datetime2 |
DateTime |
Datum und Uhrzeit |
datetimeoffset |
DateTimeOffset |
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
FORMAT in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Es gibt verschiedene Funktionen zum Formatieren von Datums- und Ganzzahlwerten in JavaScript. Leider sind diese Funktionalitäten nicht in einer Methode integriert.
DateTime-Werte¶
Syntax¶
Intl.DateTimeFormat( format ).format( value )
Argumente¶
locales
(Optional): Zeichenfolgenausdruck des anzuwendenden Formats.
options
(Optional): Objekt mit verschiedenen unterstützten Eigenschaften für Formate von numerischen Ausdrücken (Dokumentation zur JavaScript-Funktion NumberFormat).
value
: Numerischer Ausdruck zum Formatieren.
Return Type¶
String
.
Numerische Werte¶
Syntax¶
Intl.NumberFormat( [locales [, options]] ).format( value )
Argumente¶
locales
(Optional): Zeichenfolgenausdruck des anzuwendenden Formats.
options
(Optional): Objekt mit verschiedenen unterstützten Eigenschaften für Formate von numerischen Ausdrücken (Dokumentation zur JavaScript-Funktion NumberFormat).
value
: Numerischer Ausdruck zum Formatieren.
Return Type¶
String
.
Beispiele¶
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|
Numerisch¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
PATINDEX¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt die Anfangsposition des ersten Vorkommens eines Musters in einem angegebenen Ausdruck zurück (PATINDEX in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
PATINDEX( pattern, expression )
Argumente¶
pattern
: Muster zum Finden.
expression
: Ausdruck für die Suche.
Return Type¶
Ganzzahl. Gibt 0 zurück, wenn das Muster nicht gefunden wird.
Beispiele¶
SELECT PATINDEX( '%on%', 'No, no, non esistono più') AS [PATINDEX]
PATINDEX|
------------+
10|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Search in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Findet den Index eines Musters mit REGEX (Dokumentation zurJavaScript-Suchfunktion).
Beispielhaftes Quellcode-Muster¶
Syntax¶
String.search( regex )
Argumente¶
regex
: Regulärer Ausdruck, der mit dem gewünschten Muster übereinstimmt.
Return Type¶
Ganzzahl. Wenn das Muster mit keinem Teil der Zeichenfolge übereinstimmt, wird -1 zurückgegeben.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
STR¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt Zeichendaten zurück, die aus numerischen Daten konvertiert wurden. Die Zeichendaten sind rechtsbündig, mit einer bestimmten Länge und Dezimalgenauigkeit. (STR in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
STR ( float_expression [ , length [ , decimal ] ] )
STR_UDF( numeric_expression, number_format )
Argumente¶
numeric_expression
: Float-Ausdruck mit einem Dezimalpunkt.
length
(Optional): Länge des zurückgegebenen Ausdrucks, einschließlich Punktschreibweise, Dezimal- und Fließkommateil.
decimal
(Optional): Ist die Anzahl der Stellen rechts vom Dezimalpunkt.
Return Type¶
VARCHAR
.
Beispiele¶
Eingabe:
/* 1 */
SELECT STR(123.5);
/* 2 */
SELECT STR(123.5, 2);
/* 3 */
SELECT STR(123.45, 6);
/* 4 */
SELECT STR(123.45, 6, 1);
Ausgabe:
1) 124
2) **
3) 123
4) 123.5
Eingabe:
/* 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');
Ausgabe:
1) 124
2) ##
3) 123
4) 123.5
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
STR in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Leider ist diese Funktionalität in JS nicht verfügbar, aber sie kann mit den vordefinierten Funktionen für Zeichenfolgen leicht implementiert werden.
Beispielhaftes Quellcode-Muster¶
Beispiel für die Implementierung¶
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);
}
Argumente¶
number
: Float-Ausdruck mit einem Dezimalpunkt.
max_length
: Länge, die der zurückgegebene Ausdruck haben darf, einschließlich Punkt-, Dezimal- und Fließkommateile.
float_precision
: Ist die Anzahl der Stellen rechts vom Dezimalpunkt.
Return Type¶
Zeichenfolge
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LTRIM¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen Zeichenausdruck zurück, nachdem das führende Leerzeichen entfernt wurde (LTRIM in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
LTRIM( string_expression )
Argumente¶
string_expression:
Zu konvertierende Zeichenfolgenausdrücke.
Return Type¶
VARCHAR
oder NVARCHAR
Beispiele¶
SELECT LTRIM(' FIRST TWO BLANK SPACES') AS [LTRIM]
LTRIM|
----------------------+
FIRST TWO BLANK SPACES|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LTRIM in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Leider ist diese Funktion in JavaScript nicht verfügbar, aber sie kann mit regulären Ausdrücken implementiert werden.
Beispielhaftes Quellcode-Muster¶
Beispiel für die Implementierung¶
function LTRIM(string){
return string.replace(/^s+/,"");
}
Argumente¶
string
: Zeichenfolgenausdruck, um Leerzeichen zu entfernen.
Return Type¶
Zeichenfolge
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Ranking-Funktionen¶
Dieser Abschnitt beschreibt die funktionalen Äquivalente von Ranking-Funktionen in Transact-SQL zu Snowflake SQL und JavaScript Code, orientiert an ihrer Verwendung in gespeicherten Prozeduren in SnowFlake.
DENSE_RANK¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese Funktion gibt den Rang jeder Zeile innerhalb einer Resultset-Partition zurück, ohne Lücken in den Rangwerten. Der Rang einer bestimmten Zeile ist eins plus die Anzahl der eindeutigen Rangwerte, die vor dieser bestimmten Zeile stehen. (DENSE_RANK in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
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 > )
Beispiele¶
Code:
SELECT TOP 10 BUSINESSENTITYID, NATIONALIDNUMBER, RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK FROM HUMANRESOURCES.EMPLOYEE AS TOTAL
Ergebnis:
BUSINESSENTITYID|NATIONALIDNUMBER|DENSE_RANK|
----------------+----------------+----------+
57|10708100 | 1|
54|109272464 | 2|
273|112432117 | 3|
4|112457891 | 4|
139|113393530 | 5|
109|113695504 | 6|
249|121491555 | 7|
132|1300049 | 8|
214|131471224 | 9|
51|132674823 | 10|
Code:
SELECT TOP 10
BUSINESSENTITYID,
NATIONALIDNUMBER,
RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK
FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Ergebnis:
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|
Zugehörige EWIs¶
[SSC-EWI-0001](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0001): Unerkanntes Token in der Zeile des Quellcodes.
RANK¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt den Rang jeder Zeile innerhalb der Partition eines Resultset zurück. Der Rang einer Zeile ist eins plus die Anzahl der Ränge, die vor der betreffenden Zeile liegen. (RANK in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
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 )
Beispiele¶
Code:
SELECT TOP 10 BUSINESSENTITYID, NATIONALIDNUMBER, RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK FROM HUMANRESOURCES.EMPLOYEE AS TOTAL
Ergebnis:
BUSINESSENTITYID|NATIONALIDNUMBER|RANK|
----------------+----------------+----+
57|10708100 | 1|
54|109272464 | 2|
273|112432117 | 3|
4|112457891 | 4|
139|113393530 | 5|
109|113695504 | 6|
249|121491555 | 7|
132|1300049 | 8|
214|131471224 | 9|
51|132674823 | 10|
Code:
SELECT TOP 10
BUSINESSENTITYID,
NATIONALIDNUMBER,
RANK() OVER (ORDER BY NATIONALIDNUMBER) AS RANK
FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Ergebnis:
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|
Zugehörige EWIs¶
[SSC-EWI-0001](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0001): Unerkanntes Token in der Zeile des Quellcodes.
ROW_NUMBER¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Nummeriert die Ausgabe eines Resultsets. Genauer gesagt, gibt sie die fortlaufende Nummer einer Zeile innerhalb einer Partition eines Resultsets zurück, beginnend bei 1 für die erste Zeile in jeder Partition. (ROW\NUMBER in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
ROW_NUMBER ( )
OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause )
Vollständige Dokumentation zu 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 )
Beispiele¶
Code:
SELECT
ROW_NUMBER() OVER(ORDER BY NAME ASC) AS RowNumber,
NAME
FROM HUMANRESOURCES.DEPARTMENT
Ausgabe:
RowNumber|NAME |
---------+--------------------------+
1|Document Control |
2|Engineering |
3|Executive |
4|Facilities and Maintenance|
5|Finance |
6|Human Resources |
7|Information Services |
8|Marketing |
9|Production |
10|Production Control |
11|Purchasing |
12|Quality Assurance |
13|Research and Development |
14|Sales |
15|Shipping and Receiving |
16|Tool Design |
Code:
SELECT
ROW_NUMBER() OVER(ORDER BY NAME ASC) AS RowNumber,
NAME
FROM
HUMANRESOURCES.DEPARTMENT;
Ausgabe:
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 |
Zugehörige EWIs¶
[SSC-EWI-0001](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0001): Unerkanntes Token in der Zeile des Quellcodes.
Logische Funktionen¶
IIF¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen von zwei Werten zurück, je nachdem, ob der boolesche Ausdruck als „true“ oder „false“ ausgewertet wird. (IIF in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
IIF( boolean_expression, true_value, false_value )
IFF( <condition> , <expr1> , <expr2> )
Beispiele¶
Code:
SELECT IIF( 2 > 3, 'TRUE', 'FALSE' ) AS RESULT
Ergebnis:
RESULT|
------+
FALSE|
Code:
SELECT
IFF( 2 > 3, 'TRUE', 'FALSE' ) AS RESULT;
Ergebnis:
RESULT|
------+
FALSE|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
XML-Funktionen¶
Abfrage¶
Applies to
[x] SQL Server
Warnung
Diese Transformation wird in der Zukunft stattfinden
Beschreibung¶
Gibt eine XQuery gegenüber einer Instanz des Datentyps xml an. Das Ergebnis ist vom Typ xml. Die Methode gibt eine Instanz von untypisiertem XML zurück. (Abfrage() in Transact-SQL
)
Beispielhafte Quellcode-Muster ¶
Das folgende Beispiel zeigt die Transformation für .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> |
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
[SSC-EWI-0036](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0036): Datentyp in einen anderen Datentyp konvertiert.
Wert¶
Applies to
[x] SQL Server
Warnung
Diese Transformation wird in der Zukunft stattfinden
Beschreibung¶
Führt eine XQuery gegen die XML durch und gibt einen Wert vom Typ SQL zurück. Diese Methode gibt einen skalaren Wert zurück. (value() in Transact-SQL
).
Beispielhafte Quellcode-Muster ¶
Das folgende Beispiel beschreibt die Transformation für .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 |
Bekannte Probleme¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
[SSC-EWI-0036](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0036): Datentyp in einen anderen Datentyp konvertiert.
Aggregatfunktionen¶
COUNT¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese Funktion gibt die Anzahl der gefundenen Artikel in einer Gruppe zurück. COUNT funktioniert wie die Funktion COUNT_BIG. Diese Funktionen unterscheiden sich nur durch die Datentypen ihrer Rückgabewerte. COUNT gibt immer einen Wert vom Datentyp „int“ zurück. COUNT_BIG gibt immer einen Wert vom Datentyp „bigint“ zurück. (COUNT in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )
COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )
Beispiele¶
Code:
SELECT COUNT(NATIONALIDNUMBER) FROM HUMANRESOURCES.EMPLOYEE AS TOTAL;
Ergebnis:
TOTAL|
-----+
290|
Code:
SELECT
COUNT(NATIONALIDNUMBER) FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Ergebnis:
TOTAL|
-----+
290|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
COUNT_BIG¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese Funktion gibt die Anzahl der gefundenen Artikel in einer Gruppe zurück. COUNT_BIG funktioniert wie die Funktion COUNT. Diese Funktionen unterscheiden sich nur durch die Datentypen ihrer Rückgabewerte. COUNT_BIG gibt immer einen Wert vom Datentyp „bigint“ zurück. COUNT gibt immer einen Wert vom Datentyp „int“ zurück. (COUNT_BIG in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
COUNT_BIG ( { [ [ ALL | DISTINCT ] expression ] | * } )
COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )
Beispiele¶
Code:
SELECT COUNT_BIG(NATIONALIDNUMBER) FROM HUMANRESOURCES.EMPLOYEE AS TOTAL;
Ergebnis:
TOTAL|
-----+
290|
Code:
SELECT
COUNT(NATIONALIDNUMBER) FROM
HUMANRESOURCES.EMPLOYEE AS TOTAL;
Ergebnis:
TOTAL|
-----+
290|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SUM¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Gibt die Summe aller Werte oder nur die Werte von DISTINCT in dem Ausdruck zurück. SUM kann nur mit numerischen Spalten verwendet werden. Nullwerte werden ignoriert. (SUM in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
SUM ( [ ALL | DISTINCT ] expression )
SUM( [ DISTINCT ] <expr1> )
Beispiele¶
Code:
SELECT SUM(VACATIONHOURS) FROM HUMANRESOURCES.EMPLOYEE AS TOTALVACATIONHOURS;
Ergebnis:
TOTALVACATIONHOURS|
------------------+
14678|
Code:
SELECT
SUM(VACATIONHOURS) FROM
HUMANRESOURCES.EMPLOYEE AS TOTALVACATIONHOURS;
Ergebnis:
TOTALVACATIONHOURS|
------------------+
14678|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Kundenspezifische UDFs in SnowConvert¶
Beschreibung¶
Einige Funktionen oder Verhaltensweisen von Transact-SQL sind möglicherweise nicht verfügbar oder verhalten sich in Snowflake anders. Um diese Unterschiede zu minimieren, werden einige Funktionen durch SnowConvert benutzerdefinierte UDFs ersetzt.
Diese UDFs werden während der Migration automatisch erstellt, und zwar im Ordner UDF-Hilfsfunktion
, innerhalb des Ordners Ausgabe
. Es gibt eine Datei pro benutzerdefinierter UDF.
OPENXML UDF¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Diese benutzerdefinierte UDF wird hinzugefügt, um eine Rowset-Ansicht über ein XML Dokument zu verarbeiten. Dies würde für Deklarationen in verwendet werden, da es als Rowset-Anbieter funktioniert.
Optionale Parameter und verschiedene Knotentypen werden in dieser Version von UDF nicht unterstützt. Der Elementknoten wird standardmäßig verarbeitet.
Benutzerdefinierte UDF-Überlastungen¶
Parameter
XML: Ein
VARCHAR
, der den lesbaren Inhalt der XML darstellt.PATH: Ein Varchar, der das Muster der Knoten enthält, die als Zeilen verarbeitet werden sollen.
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¶
Bemerkung
Das folgende Beispiel ist in einer gespeicherten Prozedur isoliert, da Umgebungsvariablen nur 256 Byte Speicherplatz unterstützen und der XML-Demo-Code mehr als diese Grenze verwendet.
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
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
[SSC-EWI-TS0075](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/sqlServerEWI. md#ssc-ewi-ts0075): Integrierte Prozedur wird nicht unterstützt.
STR UDF¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese benutzerdefinierte UDF wandelt numerische Daten in Zeichendaten um.
Benutzerdefinierte UDF-Überlastungen¶
Parameter¶
FLOAT_EXPR: Ein numerischer Ausdruck, der in Varchar konvertiert werden soll.
FORMAT: Ein Varchar-Ausdruck mit der Länge und der Anzahl der Dezimalstellen des resultierenden Varchar-Wertes. Dieses Format wird automatisch in SnowConvert generiert.
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;
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
SWITCHOFFSET_UDF¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese benutzerdefinierte UDF wird hinzugefügt, um einen datetimeoffset-Wert zurückzugeben, der von dem gespeicherten Zeitzonenoffset auf einen angegebenen neuen Zeitzonenoffset geändert wird.
Benutzerdefinierte UDF-Überlastungen¶
Parameter
source\_timestamp: Ein TIMESTAMP_TZ, der in einen datetimeoffset(n)-Wert aufgelöst werden kann.
target_tz: Ein Varchar, der den Zeitzonenoffset darstellt
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
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs¶
Keine zugehörigen EWIs.
Metadatenfunktionen¶
DB_NAME¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt den Namen einer angegebenen Datenbank zurück. (DB_NAME in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
DB_NAME ( [ database_id ] )
CURRENT_DATABASE() /*** SSC-FDM-TS0010 - CURRENT_DATABASE function has different behavior in certain cases ***/
Beispiele¶
Code:
SELECT DB_NAME();
Ergebnis:
RESULT |
-------------------+
ADVENTUREWORKS2019 |
Code:
SELECT
CURRENT_DATABASE() /*** SSC-FDM-TS0010 - CURRENT_DATABASE function has different behavior in certain cases ***/;
Ergebnis:
RESULT |
-------------------+
ADVENTUREWORKS2019 |
Bekannte Probleme¶
1. Die CURRENT\DATABASE-Funktion verhält sich in bestimmten Fällen anders
Die DB_NAME-Funktion kann mit dem Parameter database_id aufgerufen werden, der den Namen der angegebenen Datenbank zurückgibt. Ohne Parameter gibt die Funktion den aktuellen Datenbanknamen zurück. SnowFlake unterstützt diesen Parameter jedoch nicht und die Funktion CURRENT_DATABASE gibt immer den aktuellen Datenbanknamen zurück.
Zugehörige EWIs¶
[SSC-FDM-TS0010](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/sqlServerFDM. md#ssc-fdm-ts0010): CURRENT_DATABASE-Funktion verhält sich in bestimmten Fällen anders.
OBJECT_ID¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt die Datenbankobjekt-Identifikationsnummer eines Objekts zurück, das in einem Schema enthalten ist.(OBJECT_ID in Transact-SQL).
OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]
object_name' [ ,'object_type' ] )
Beispielhafte Quellcode-Muster¶
1. Default transformation¶
IF OBJECT_ID_UDF('DATABASE2.DBO.TABLE1') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
BEGIN
-- ** SSC-EWI-0001 - UNRECOGNIZED TOKEN ON LINE '1' COLUMN '0' OF THE SOURCE CODE STARTING AT 'IF'. EXPECTED 'If Statement' GRAMMAR. LAST MATCHING TOKEN WAS 'null' ON LINE '1' COLUMN '48'. FAILED TOKEN WAS ')' ON LINE '1' COLUMN '52'. CODE '70'. **
--IF OBJECT_ID_UDF('DATABASE2.DBO.TABLE1') is not null) THEN
--** SSC-FDM-0007 - MISSING DEPENDENT OBJECT "TABLE1" **
DROP TABLE IF EXISTS TABLE1;
END;
2. Unknown database¶
Code:
IF OBJECT_ID_UDF('DATABASE1.DBO.TABLE1') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
Code:
IF (
OBJECT_ID_UDF('DATABASE1.DBO.TABLE1') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
3. Different object names¶
Code:
IF OBJECT_ID_UDF('DATABASE1.DBO.TABLE2') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
Code:
IF (
OBJECT_ID_UDF('DATABASE1.DBO.TABLE2') is not null) THEN
DROP TABLE IF EXISTS TABLE1;
END IF;
Bekannte Probleme¶
1. Die OBJECT_ID\_UDF-Funktion hat in bestimmten Fällen ein anderes Verhalten
OBJECT_ID gibt die Objektidentifikationsnummer zurück, aber OBJECT_ID\_UDF gibt einen booleschen Wert zurück, so dass sie nur dann gleichwertig sind, wenn OBJECT\_ID mit der Bedingung not null verwendet wird.
Zugehörige EWIs¶
[SSC-EWI-0001](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI. md#ssc-ewi-0001): Unerkanntes Token in der Zeile des Quellcodes.
[SSC-FDM-0007](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM. md#ssc-fdm-0007): Element mit fehlenden Abhängigkeiten
Analysefunktionen¶
LAG¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Greift ab SQL Server 2012 (11.x) auf Daten aus einer vorherigen Zeile im selben Resultset zu, ohne dass ein Self-Join verwendet wird. LAG ermöglicht den Zugriff auf eine Zeile mit einem bestimmten physischen Offset, die vor der aktuellen Zeile liegt. Verwenden Sie diese analytische Funktion in einer SELECT-Anweisung, um Werte in der aktuellen Zeile mit Werten in einer vorherigen Zeile zu vergleichen.
Beispielhaftes Quellcode-Muster¶
Syntax¶
LAG (scalar_expression [,offset] [,default])
OVER ( [ partition_by_clause ] order_by_clause )
COUNT( [ DISTINCT ] <expr1> [ , <expr2> ... ] )
Beispiele¶
Code:
SELECT TOP 10
LAG(E.VacationHours,1) OVER(ORDER BY E.NationalIdNumber) as PREVIOUS,
E.VacationHours AS ACTUAL
FROM HumanResources.Employee E
Ergebnis:
PREVIOUS|ACTUAL|
--------+------+
NULL| 10|
10| 89|
89| 10|
10| 48|
48| 0|
0| 95|
95| 55|
55| 67|
67| 84|
84| 85|
Code:
SELECT TOP 10
LAG(E.VacationHours,1) OVER(ORDER BY E.NationalIdNumber) as PREVIOUS,
E.VacationHours AS ACTUAL
FROM
HumanResources.Employee E;
Ergebnis:
PREVIOUS|ACTUAL|
--------+------+
NULL| 10|
10| 89|
89| 10|
10| 48|
48| 0|
0| 95|
95| 55|
55| 67|
67| 84|
84| 85|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Datentypfunktionen¶
DATALENGTH¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt die Anzahl der Bytes zurück, die zur Darstellung eines beliebigen Ausdrucks verwendet werden. (DATALENGTH in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
DATALENGTH ( expression )
OCTET_LENGTH(<string_or_binary>)
Beispiele¶
Code:
SELECT DATALENGTH('SomeString') AS SIZE;
Ergebnis:
SIZE|
----+
10|
Code:
SELECT OCTET_LENGTH('SomeString') AS SIZE;
Ergebnis:
SIZE|
----+
10|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Mathematische Funktionen¶
ABS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Eine mathematische Funktion, die den absoluten (positiven) Wert des angegebenen numerischen Ausdrucks zurückgibt. (ABS
wandelt negative Werte in positive Werte um. ABS
hat keine Auswirkungen auf Null- oder positive Werte.) (ABS in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
ABS( expression )
ABS( <num_expr> )
Vollständige Dokumentation zu JavaScript
Math.abs( expression )
Beispiele¶
Code:
SELECT ABS(-5);
Ergebnis:
ABS(-5)|
-------+
5|
Code:
SELECT ABS(-5);
Ergebnis:
ABS(-5)|
-------+
5|
Code:
CREATE OR REPLACE FUNCTION compute_abs(a float)
RETURNS float
LANGUAGE JAVASCRIPT
AS
$$
return Math.abs(A);
$$
;
SELECT COMPUTE_ABS(-5);
\ Ergebnis:
COMPUTE_ABS(-5)|
---------------+
5|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
AVG¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Bemerkung
Der Abschnitt „SnowConvert Helpers Code“ wird weggelassen.
Diese Funktion gibt den Durchschnitt der Werte in einer Gruppe zurück. Es ignoriert Nullwerte. (AVG in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
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> ] ]
)
Beispiele¶
Code:
SELECT AVG(VACATIONHOURS) AS AVG_VACATIONS FROM HUMANRESOURCES.EMPLOYEE;
Ergebnis:
AVG_VACATIONS|
-------------+
50|
Code:
SELECT AVG(VACATIONHOURS) AS AVG_VACATIONS FROM HUMANRESOURCES.EMPLOYEE;
Ergebnis:
AVG_VACATIONS|
-------------+
50.613793|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
CEILING¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Eine mathematische Funktion, die die kleinste größere ganze Zahl zurückgibt, die größer/gleich der als Parameter übergebenen Zahl ist (CEILING in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
CEILING( expression )
CEIL( <input_expr> [, <scale_expr> ] )
Math.ceil( expression )
Beispiele¶
Code:
SELECT CEILING(642.20);
\ Ergebnis:
CEILING(642.20)|
---------------+
643 |
Code:
SELECT CEIL(642.20);
\ Ergebnis:
CEIL(642.20)|
------------+
643 |
Code:
CREATE OR REPLACE FUNCTION compute_ceil(a double)
RETURNS double
LANGUAGE JAVASCRIPT
AS
$$
return Math.ceil(A);
$$
;
SELECT COMPUTE_CEIL(642.20);
\ Ergebnis:
COMPUTE_CEIL(642.20)|
--------------------+
643|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
FLOOR¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt die größte ganze Zahl zurück, die kleiner oder gleich dem angegebenen numerischen Ausdruck ist. (FLOOR in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
FLOOR ( numeric_expression )
FLOOR( <input_expr> [, <scale_expr> ] )
Beispiele¶
Code:
SELECT FLOOR (124.87) AS FLOOR;
Ergebnis:
FLOOR|
-----+
124|
Code:
SELECT FLOOR (124.87) AS FLOOR;
Ergebnis:
FLOOR|
-----+
124|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
POWER¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt den Wert des angegebenen Ausdrucks in der angegebenen Potenz zurück. (POWER in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
POWER ( float_expression , y )
POW(x, y)
POWER (x, y)
Beispiele¶
Code:
SELECT POWER(2, 10.0) AS IntegerResult
Ergebnis:
IntegerResult |
--------------+
1024|
Code:
SELECT POWER(2, 10.0) AS IntegerResult;
Ergebnis:
IntegerResult |
--------------+
1024|
Zugehörige Dokumentation¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ROUND¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen numerischen Wert zurück, gerundet auf die angegebene Länge oder Genauigkeit. (ROUND in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
ROUND ( numeric_expression , length [ ,function ] )
ROUND( <input_expr> [, <scale_expr> ] )
Beispiele¶
Code:
SELECT ROUND(123.9994, 3) AS COL1, ROUND(123.9995, 3) AS COL2;
Ergebnis:
COL1 |COL2 |
--------+--------+
123.9990|124.0000|
Code:
SELECT ROUND(123.9994, 3) AS COL1,
ROUND(123.9995, 3) AS COL2;
Ergebnis:
COL1 | COL2 |
--------+------+
123.999|124.000|
Zugehörige Dokumentation¶
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SQRT¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt die Quadratwurzel des angegebenen Gleitkommawerts zurück. (SQRT in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
SQRT ( float_expression )
SQRT(expr)
Beispiele¶
Code:
SELECT SQRT(25) AS RESULT;
Ergebnis:
RESULT|
------+
5.0|
Code:
SELECT SQRT(25) AS RESULT;
Ergebnis:
RESULT|
------+
5.0|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SQUARE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt das Quadrat des angegebenen Gleitkommawerts zurück. (SQUARE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
SQUARE ( float_expression )
SQUARE(expr)
Beispiele¶
Code:
SELECT SQUARE (5) AS SQUARE;
Ergebnis:
SQUARE|
------+
25.0|
Code:
SELECT SQUARE (5) AS SQUARE;
Ergebnis:
SQUARE|
------+
25|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
STDEV¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Gibt die statistische Standardabweichung aller Werte im angegebenen Ausdruck zurück. (STDEV in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
STDEV ( [ ALL | DISTINCT ] expression )
STDDEV( [ DISTINCT ] <expression_1> )
Beispiele¶
Code:
SELECT
STDEV(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS STDEV;
Ergebnis:
STDEV|
----------------+
28.7862150320948|
Code:
SELECT
STDDEV(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS STDEV;
Ergebnis:
STDEV|
------------+
28.786215034|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
STDEVP¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Liefert die statistische Standardabweichung für die Grundgesamtheit für alle Werte im angegebenen Ausdruck. (STDVEP in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
STDEVP ( [ ALL | DISTINCT ] expression )
STDDEV_POP( [ DISTINCT ] expression_1)
Beispiele¶
Code:
SELECT
STDEVP(VACATIONHOURS) AS STDEVP_VACATIONHOURS
FROM
HumanResources.Employee;
Ergebnis:
STDEVP_VACATIONHOURS|
--------------------+
28.736540767245085|
Code:
SELECT
STDDEV_POP(VACATIONHOURS) AS STDEVP_VACATIONHOURS
FROM
HumanResources.Employee;
Ergebnis:
STDEVP_VACATIONHOURS|
--------------------+
28.736540763|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
VAR¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Bemerkung
Einige Teile des Ausgabecodes wurden aus Gründen der Übersichtlichkeit weggelassen.
Beschreibung¶
Gibt die statistische Varianz aller Werte im angegebenen Ausdruck zurück. (VAR in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
VAR ( [ ALL | DISTINCT ] expression )
VAR_SAMP( [DISTINCT] <expr1> )
Beispiele¶
Code:
SELECT
VAR(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS VAR;
Ergebnis:
VAR|
----------------+
28.7862150320948|
Code:
SELECT
VAR_SAMP(VACATIONHOURS)
FROM
HUMANRESOURCES.EMPLOYEE AS VAR;
Ergebnis:
VAR|
----------+
828.646176|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
POWER¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt den Wert des angegebenen Ausdrucks für eine bestimmte Potenz zurück.\ (POWER in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
POWER( base, exp )
Argumente¶
base
: Basis der Zahl, es muss ein Float-Ausdruck sein.\ exp
: Potenz, mit der die Basis erhöht wird.
Return Type¶
Der Rückgabetyp hängt von dem Eingabeausdruck ab:
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 |
Beispiele¶
SELECT POWER(2, 3)
POWER(2, 3)|
-----------+
8.0|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
POW in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt die Basis der Potenz des Exponenten zurück. (Dokumentation zur JavaScript-Funktion POW).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.pow( base, exp )
Argumente¶
base
: Basis der Zahl, es muss ein Float-Ausdruck sein.\ exp
: Potenz, mit der die Basis erhöht wird.
Return Type¶
Derselbe Datentyp, der über den Parameter als numerischer Ausdruck gesendet wird.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ACOS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Funktion, die den Arkosinus im Bogenmaß der als Parameter übergebenen Zahl zurückgibt (ACOS in Transact-SQL).
Mathematisch gesehen ist der Arkosinus die Umkehrfunktion des Kosinus, woraus sich die folgende Definition ergibt:\ $$y = cos^{-1} \Linksrechtspfeil x = cos(y)$$
Für $$y = cos^{-1}(x)$$:\ - Bereich: $$0\leqslant y \leqslant \pi$$ oder $$0^{\circ}\leqslant y \leqslant 180^{\circ}$$\ - Bereich: $$-1\leqslant x \leqslant 1$$
Beispielhaftes Quellcode-Muster¶
Syntax¶
ACOS ( expression )
Argumente¶
expression
: Numerischer Float-Ausdruck, wobei der Ausdruck in $$[-1,1]$$ liegt.
Return Type¶
Numerischer Float-Ausdruck zwischen 0 und π. Wenn der per Parameter gesendete numerische Ausdruck außerhalb des Bereichs $$[-1, 1]$$ liegt, gibt die Datenbankmaschine einen Fehler aus.
Beispiele¶
SELECT ACOS(-1.0);
ACOS(-1.0) |
-----------------+
3.141592653589793|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ACOS in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Funktion, die den Arkosinus einer bestimmten Zahl zurückgibt. (Dokumentation zur JavaScript-Funktion ACOS).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.acos( expression )
Argumente¶
expression
: Numerischer Ausdruck, wobei der Ausdruck in $$[-1,1]$$ liegt.
Return Type¶
Numerischer Ausdruck zwischen 0 und π. Wenn der als Parameter übergebene numerische Ausdruck außerhalb des Bereichs des Arkosinus im Bogenmaß $$[-1, 1]$$ liegt, gibt die Funktion NaN zurück.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ASIN¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Funktion, die den Arkussinus im Bogenmaß der als Parameter übergebenen Zahl zurückgibt (ASIN in Transact-SQL).
Der Arkussinus ist die Umkehrfunktion des Sinus, zusammengefasst in der folgenden Definition:\ $$y = sin^{-1} \Linksrechtspfeil x = sin(x)$$
Für $$y = sin^{-1}(x)$$:\ - Bereich: $$-\frac{\pi}{2}\leqslant y \leqslant \frac{\pi}{2}$$ oder $$-90^{\circ}\leqslant y \leqslant 90^{\circ}$$$ - Bereich: $$-1\leqslant x \leqslant 1$$
Beispielhaftes Quellcode-Muster¶
Syntax¶
ASIN( expression )
Argumente¶
expression
: Numerischer Float-Ausdruck, wobei der Ausdruck in $$[-1,1]$$ liegt.
Return Type¶
Numerischer Float-Ausdruck zwischen $$-\frac{\pi}{2}$$ und $$\frac{\pi}{2}$$. Wenn der als Parameter gesendete numerische Ausdruck nicht in $$[-1, 1]$$ liegt, gibt die Datenbank-Engine einen Fehler aus.
Beispiele¶
SELECT ASIN(0.5);
ASIN(0.5) |
------------------+
0.5235987755982989|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ASIN in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Funktion, die den Arkussinus einer bestimmten Zahl zurückgibt. (Dokumentation zurJavaScript-Funktion ASIN).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.asin( expression )
Argumente¶
expression
: Numerischer Ausdruck, wobei der Ausdruck in $$[-1,1]$$ liegt.
Return Type¶
Numerischer Ausdruck zwischen $$-\frac{\pi}{2}$$ und $$\frac{\pi}{2}$$. Wenn der als Parameter übergebene numerische Ausdruck außerhalb des Bereichs des Arkosinus $$[-1, 1]$$ liegt, gibt die Funktion NaN zurück.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
COS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Funktion, die den Kosinus des über Parameter gesendeten Winkels zurückgibt (muss im Bogenmaß gemessen werden) (COS in Transact-SQL).
Der Kosinus ist definiert als:\ $$y = cos(x)$$\ Wo:\ - Bereich: $$-1\leqslant y \leqslant 1$$- Bereich: $$\mathbb{R}$$
Beispielhaftes Quellcode-Muster¶
Syntax¶
COS( expression )
Argumente¶
expression
: Numerischer Float-Ausdruck, wobei Ausdruck in $$\mathbb{R}$$ ist.
Return Type¶
Numerischer Float-Ausdruck in $$[-1, 1]$$.
Beispiele¶
SELECT COS(PI())
COS(PI())|
---------+
-1.0|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
COS in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Statische Funktion, die den Kosinus eines Winkels im Bogenmaß zurückgibt (Dokumentation zurJavaScript COS-Funktion).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.cos( expression )
Argumente¶
expression:
Numerische Ausdrücke.
Return Type¶
Derselbe Datentyp, der über den Parameter als numerischer Ausdruck gesendet wird.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
COT¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt den Kotangens des Winkels im Bogenmaß zurück, der über die Parameter (COT in Transact-SQL) gesendet wird.
Der Kosinus ist definiert als:\ $$cot(x) = \frac{cos(x)}{sin(x)}$$ oder $$cot(x) = \frac{1}{tan(x)}$$\ Um den Kosinus zu berechnen, muss der Parameter den Einschränkungen der Funktionen Sinus und Kosinus entsprechen.
Beispielhaftes Quellcode-Muster¶
Syntax¶
COT( expression )
Argumente¶
expression
: Numerischer Float-Ausdruck, wobei Ausdruck in $$\mathbb{R}-{sin(expression)=0 \wedge tan(expression) =0}$$ ist.
Return Type¶
Numerischer Float-Ausdruck in $$\mathbb{R}$$.
Beispiele¶
SELECT COT(1)
COT(1) |
------------------+
0.6420926159343306|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
COT in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Leider bietet das Objekt Math
in JavaScript keine Methode zur Berechnung des Kotangens eines gegebenen Winkels.\ Dies könnte mit der Gleichung: $$cot(x) = \frac{cos(x)}{sin(x)}$$ berechnet werden
Beispielhaftes Quellcode-Muster¶
Beispiel für die Implementierung¶
function cot(angle){
return Math.cos(angle)/Math.sin(angle);
}
Argumente¶
angle
: Numerischer Ausdruck im Bogenmaß.
Return Type¶
Derselbe Datentyp, der über den Parameter als numerischer Ausdruck gesendet wird.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
RADIANS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Konvertiert Grad in Bogenmaß.\ (RADIANS in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
RADIANS( expression )
Argumente¶
expression
: Numerischer Ausdruck in Grad.
Return Type¶
Derselbe Datentyp wird über den Parameter als numerischer Ausdruck im Bogenmaß gesendet.
Beispiele¶
SELECT RADIANS(180.0)
RADIANS(180) |
--------------------+
3.141592653589793116|
Bemerkung
Wandeln Sie den Parameter dieser Funktion in einen Gleitkommawert um, andernfalls gibt die obige Anweisung 3 statt des Wertes PI zurück.
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
RADIANS in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
JavaScript stellt keine Methode zur Umrechnung von Grad in Bogenmaß eines bestimmten Winkels zur Verfügung. Dies könnte mit der folgenden Gleichung berechnet werden: $$Bogenmaß = \frac{\pi}{180^{\circ}} \cdot Winkel$$
Beispielhaftes Quellcode-Muster¶
Beispiel für die Implementierung¶
function radians(angle){
return (Math.PI/180) * angle;
}
Argumente¶
winkel
: Fließkomma-Ausdruck in Grad.
Return Type¶
Derselbe Datentyp wird über den Parameter als numerischer Ausdruck im Bogenmaß gesendet.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
PI¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Liefert den konstanten Wert von PI\ (PI in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
PI( )
Argumente¶
Diese Methode erhält keine Parameter.
Return Type¶
Float.
Beispiele¶
CREATE PROCEDURE CIRCUMFERENCE @radius float
AS
SELECT 2 * PI() * @radius;
GO:
EXEC CIRCUMFERENCE @radius = 2;
CIRCUMFERENCE @radius = 2 |
--------------------------+
12.5663706143592|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
PI in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Konstante, die die Zahl PI darstellt (ungefähr 3,141592…)\ (JavaScript PI-Dokumentation).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.PI
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
DEGREES¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Konvertiert den über Parameter gesendeten Winkel im Bogenmaß in Grad (DEGREES in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
DEGREES( expression )
Argumente¶
expression
: Numerischer Float-Ausdruck im Bogenmaß.
Return Type¶
Derselbe Datentyp, der über den Parameter als numerischer Ausdruck gesendet wird.
Beispiele¶
SELECT DEGREES(PI())
DEGREES(PI())|
-------------+
180.0|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
DEGREES in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
JavaScript stellt keine Methode zur Umrechnung von Bogenmaß in Grad eines bestimmten Winkels zur Verfügung. Dies könnte mit der folgenden Gleichung berechnet werden: $$Grad = \frac{180^{\circ}}{\pi} \cdot angle$$
Beispielhaftes Quellcode-Muster¶
Beispiel für die Implementierung¶
function degress(angle){
return (180/Math.PI) * angle;
}
Argumente¶
angle
: Numerischer Ausdruck im Bogenmaß.
Return Type¶
Derselbe Datentyp, der über den Parameter als numerischer Ausdruck gesendet wird.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LOG¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Liefert den natürlichen Logarithmus einer Zahl\ (LOG in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
LOG( expression [, base ] )
Argumente¶
expression
: Numerischer Ausdruck.
basis
(optional): Basis für die Berechnung des Logarithmus einer Zahl, standardmäßig ist dies die Euler-Basis.
Return Type¶
Float.
Beispiele¶
SELECT LOG(8, 2)
LOG(8, 2) |
-----------+
3|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LOG in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Liefert den Logarithmus unter Verwendung der Eulerschen Zahl als Basis. (Dokumentation zur JavaScript-Funktion LOG).
Warnung
Leider bietet JavaScript keine Methode, die eine Logarithmusbasis über ihre Parameter empfängt, aber das lässt sich lösen, indem man die Basis durch das Argument dividiert.
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.log( expression )
Argumente¶
expression
: Numerischer Ausdruck. Er muss positiv sein, andernfalls wird NaN zurückgegeben.\
Return Type¶
Derselbe Datentyp, der über den Parameter als numerischer Ausdruck gesendet wird.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ATAN¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Funktion, die den Arkustangens im Bogenmaß der als Parameter übergebenen Zahl zurückgibt (ATAN in Transact-SQL).
Der Arkustangens ist die Umkehrfunktion des Tangens, zusammengefasst in der folgenden Definition:\ $$y = arctan^{-1} \Leftrightarrow x = tan(x)$$
Für $$y = tan^{-1}(x)$$:\ - Bereich: $$-\frac{\pi}{2}\leqslant y \leqslant \frac{\pi}{2}$$ oder $$-90^{\circ}\leqslant y \leqslant 90^{\circ}$$$\ - Bereich: $$\mathbb{R}$$
Beispielhaftes Quellcode-Muster¶
Syntax¶
ATAN( expression )
Argumente¶
expression
: Numerischer Float-Ausdruck, oder ein numerischer Typ, der in Float konvertiert werden kann.
Return Type¶
Numerischer Float-Ausdruck zwischen $$-\frac{\pi}{2}$$ und $$\frac{\pi}{2}$$.
Beispiele¶
SELECT ATAN(-30);
ATAN(-30) |
-------------------+
-1.5374753309166493|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ATAN in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Funktion, die den Arkustangens einer bestimmten Zahl zurückgibt. (Dokumentation zur JavaScript-Funktion ATAN).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.atan( expression )
Argumente¶
expression
: Numerischer Ausdruck.
Return Type¶
Numerischer Ausdruck zwischen $$-\frac{\pi}{2}$$ und $$\frac{\pi}{2}$$.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ATN2¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Funktion, die den Arkustangens im Bogenmaß von zwei als Parameter übergebenen Koordinaten zurückgibt (ATN2 in Transact-SQL).
Für $$z = tan^{-1}(x, y)$$:\ - Bereich: $$-\pi\leqslant z \leqslant \pi$$ oder $$-180^{\circ}\leqslant z \leqslant 180^{\circ}$$\ - Bereich: $$\mathbb{R}$$
Beispielhaftes Quellcode-Muster¶
Syntax¶
ATN2( expression_1, expression_2 )
Argumente¶
expression1
und expression2
: Numerische Ausdrücke.
Return Type¶
Numerischer Ausdruck zwischen $$-\pi$$ und $$\pi$$.
Beispiele¶
SELECT ATN2(7.5, 2);
ATN2(7.5, 2) |
------------------+
1.3101939350475555|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
ATAN2 in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Funktion, die den Arkustangens von zwei Parametern zurückgibt. (Dokumentation zur JavaScript-Funktion ATAN2).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.atan2( expression_1, expression_2 )
Argumente¶
expression_1
und expression_2
: Numerische Ausdrücke.
Return Type¶
Numerischer Ausdruck zwischen $$-\pi$$ und $$\pi$$.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LOG10¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Liefert den Logarithmus zur Basis 10 einer Zahl\ (LOG10 in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
LOG10( expression )
Argumente¶
expression
: Numerischer Ausdruck, muss positiv sein.
Return Type¶
Float.
Beispiele¶
SELECT LOG10(5)
LOG10(5) |
-----------------+
0.698970004336019|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
LOG10 in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Liefert den Logarithmus zur Basis 10 einer Zahl\ (Dokumentation zur JavaScript-Funktion LOG10).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.log10( expression )
Argumente¶
expression
: Numerischer Ausdruck. Er muss positiv sein, andernfalls wird NaN zurückgegeben.\
Return Type¶
Derselbe Datentyp, der über den Parameter als numerischer Ausdruck gesendet wird.
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
EXP¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Liefert den Exponentialwert von Euler (EXP in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
EXP( expression )
Argumente¶
expression
: Numerischer Ausdruck.
Return Type¶
Derselbe Datentyp, der über den Parameter als numerischer Ausdruck gesendet wird.
Beispiele¶
SELECT EXP(LOG(20)), LOG(EXP(20))
GO
EXP(LOG(20)) |LOG(EXP(20)) |
---------------+----------------+
20.0| 20.0|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
EXP in JS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Konstante, die die Eulersche Zahl darstellt (ungefähr 2,718…)\ (Dokumentation zur JavaScript Eulersche Zahl). \ JavaScript ermöglicht verschiedene Operationen mit dieser Konstante, anstelle von Transact-SQL, das nur das Exponential von Euler unterstützt.
Beispielhaftes Quellcode-Muster¶
Syntax¶
Math.E
Beispiele¶
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|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
Konvertierungsfunktionen¶
CONVERT¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Konvertieren Sie einen Ausdruck von einem Datentyp in einen anderen. (CONVERT in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
CAST( <source_expr> AS <target_data_type> )
Beispiele¶
SELECT CONVERT(INT, '1998') as MyDate
MyDate |
-------+
1998 |
SELECT
CAST('1998' AS INT) as MyDate;
MYDATE |
-------+
1998 |
Datumstyp in Varchar umwandeln¶
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 |
Datumstyp in Varchar mit Größe umwandeln¶
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 |
Die unterstützten Formate für Datumsübertragungen sind:
Datumsformate
Code |
Format |
---|---|
1 |
mm/dd/yy |
2 |
yy.mm.dd |
3 |
dd/mm/yy |
4 |
dd.mm.yy |
5 |
dd-mm-yy |
6 |
dd-Mon-yy |
7 |
Mon dd, yy |
10 |
mm-dd-yy |
11 |
yy/mm/dd |
12 |
yymmdd |
23 |
yyyy-mm-dd |
101 |
mm/dd/yyyy |
102 |
yyyy.mm.dd |
103 |
dd/mm/yyyy |
104 |
dd.mm.yyyy |
105 |
dd-mm-yyyy |
106 |
dd Mon yyyy |
107 |
Mon dd, yyyy |
110 |
mm-dd-yyyy |
111 |
yyyy/mm/dd |
112 |
yyyymmdd |
Uhrzeitformate
Code |
Format |
---|---|
8 |
hh:mm:ss |
14 |
hh:mm:ss:ff3 |
24 |
hh:mm:ss |
108 |
hh:mm:ss |
114 |
hh:mm:ss:ff3 |
Datums- und Uhrzeitformate
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 |
Daten nach dem islamischen Kalender
Code |
Format |
---|---|
130 |
dd mmm yyyy hh:mi:ss:ff3 AM/PM |
131 |
dd mmm yyyy hh:mi:ss:ff3 AM/PM |
Wenn es kein Muster gibt, das mit dem aktuellen Code übereinstimmt, wird er in yyyy-mm-dd hh:mm:ss
formatiert
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
TRY_CONVERT¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen in den angegebenen Datentyp umgewandelten Wert zurück, wenn die Umwandlung erfolgreich war; andernfalls wird null zurückgegeben.
(SQL Server-Referenz: TRY_CONVERT)
Syntax¶
TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] )
Quellcode-Muster¶
Grundlegende Transformation¶
Um diese Funktion umzuwandeln, müssen wir zunächst die Parameter des TRY_CONVERT überprüfen.
TRY_CONVERT( INT, 'test')
Wenn der Ausdruck, der umgewandelt werden muss, eine Zeichenfolge ist, wird er in TRY_CAST umgewandelt, was eine Funktion von Snowflake ist.
TRY_CAST( 'test' AS INT)
TRY_CAST¶
TRY_CAST hat die gleiche Transformation wie TRY_CONVERT.
Beispiel¶
Sql Server¶
SELECT TRY_CAST('12345' AS NUMERIC) NUMERIC_RESULT,
TRY_CAST('123.45' AS DECIMAL(20,2)) DECIMAL_RESULT,
TRY_CAST('123' AS INT) INT_RESULT,
TRY_CAST('123.02' AS FLOAT) FLOAT_RESULT,
TRY_CAST('123.02' AS DOUBLE PRECISION) DOUBLE_PRECISION_RESULT,
TRY_CAST('2017-01-01 12:00:00' AS DATE) DATE_RESULT,
TRY_CAST('2017-01-01 12:00:00' AS DATETIME) DATETIME_RESULT,
TRY_CAST('2017-01-01 12:00:00' AS SMALLDATETIME) SMALLDATETIME_RESULT,
TRY_CAST('12:00:00' AS TIME) TIME_RESULT,
TRY_CAST('2017-01-01 12:00:00' AS TIMESTAMP) TIMESTAMP_RESULT,
TRY_CAST('2017-01-01 12:00:00' AS DATETIMEOFFSET) DATETIMEOFFSET_RESULT,
TRY_CAST(1234 AS VARCHAR) VARCHAR_RESULT,
TRY_CAST(1 AS CHAR) CHAR_RESULT,
TRY_CAST('2017-01-01 12:00:00' AS SQL_VARIANT) SQL_VARIANT_RESULT,
TRY_CAST('LINESTRING(-122.360 47.656, -122.343 47.656 )' AS GEOGRAPHY) GEOGRAPHY_RESULT;
Das Ergebnis ist dasselbe wie bei dem Beispiel von 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;
Bekannte Probleme¶
Wenn der Datentyp Varchar oder Char ist, wird er anders umgewandelt.
TRY_CONVERT(VARCHAR, 1234);
TRY_CONVERT(CHAR, 1);
Wenn TRY_CAST zusammen mit VARCHAR oder CHAR in Snowflake verwendet wird, führt dies zu einem Fehler, so dass es in
TO_VARCHAR(1234);
TO_CHAR(1);
Dasselbe geschieht mit den Datentypen von SQL_VARIANT und GEOGRAPHY.
TRY_CONVERT(SQL_VARIANT, '2017-01-01 12:00:00');
TRY_CONVERT(GEOGRAPHY, 'LINESTRING(-122.360 47.656, -122.343 47.656 )');
Werden umgewandelt in
TO_VARIANT('2017-01-01 12:00:00');
TO_GEOGRAPHY('LINESTRING(-122.360 47.656, -122.343 47.656 )');
Wenn der Ausdruck keine Zeichenfolge ist, besteht eine sehr hohe Wahrscheinlichkeit, dass er fehlschlägt, da TRY_CAST von Snowflake nur mit Zeichenfolgenausdrücken funktioniert.
In diesem Fall wird eine weitere Transformation durchgeführt
TRY_CAST(14.85 AS INT)
Wird umgewandelt in
CAST(14.85 AS INT) /*** SSC-FDM-TS0005 - TRY_CONVERT/TRY_CAST COULD NOT BE CONVERTED TO TRY_CAST ***/
Bei diesen Transformationen kann es zu Problemen kommen, je nachdem, was mit den Funktionen gemacht wird. TRY_CONVERT von SqlServer gibt Nullen zurück, wenn die Konvertierung nicht möglich war.
Dies kann verwendet werden, um eine Logik wie diese auszuführen
SELECT
CASE
WHEN TRY_CONVERT( INT, 'Expression') IS NULL
THEN 'FAILED'
ELSE 'SUCCEDDED'
END;
Diese Art von Bedingungen mit TRY_CONVERT kann mit TRY_CAST verwendet werden, aber was passiert, wenn es in TO\_VARCHAR, TOCHAR oder in CAST umgewandelt wird? Wenn die Konvertierung in diesen Funktionen fehlschlägt, wird ein Fehler ausgegeben, anstatt einfach null zurückzugeben.
Beispiele¶
In diesem Beispiel haben wir mehrere TRY_CONVERT mit verschiedenen Datentypen
Sql Server¶
SELECT TRY_CONVERT(NUMERIC, '12345') NUMERIC_RESULT,
TRY_CONVERT(DECIMAL(20,2), '123.45') DECIMAL_RESULT,
TRY_CONVERT(INT, '123') INT_RESULT,
TRY_CONVERT(FLOAT, '123.02') FLOAT_RESULT,
TRY_CONVERT(DOUBLE PRECISION, '123.02') DOUBLE_PRECISION_RESULT,
TRY_CONVERT(DATE, '2017-01-01 12:00:00') DATE_RESULT,
TRY_CONVERT(DATETIME, '2017-01-01 12:00:00') DATETIME_RESULT,
TRY_CONVERT(SMALLDATETIME, '2017-01-01 12:00:00') SMALLDATETIME_RESULT,
TRY_CONVERT(TIME, '12:00:00') TIME_RESULT,
TRY_CONVERT(TIMESTAMP, '2017-01-01 12:00:00') TIMESTAMP_RESULT,
TRY_CONVERT(DATETIMEOFFSET, '2017-01-01 12:00:00') DATETIMEOFFSET_RESULT,
TRY_CONVERT(VARCHAR, 1234) VARCHAR_RESULT,
TRY_CONVERT(CHAR, 1) CHAR_RESULT,
TRY_CONVERT(SQL_VARIANT, '2017-01-01 12:00:00') SQL_VARIANT_RESULT,
TRY_CONVERT(GEOGRAPHY, 'LINESTRING(-122.360 47.656, -122.343 47.656 )') GEOGRAPHY_RESULT;
Wenn wir diesen Select migrieren, erhalten wir das folgende Ergebnis
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;
Lassen Sie uns jede einzelne ausführen und das Ergebnis vergleichen.
Alias |
SqlServer-Ergebnis |
Snowflake-Ergebnis |
---|---|---|
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“ } |
Zugehörige EWIs ¶
[SSC-FDM-TS0005](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/sqlServerFDM. md#ssc-fdm-ts0005): TRY_CONVERT/TRY_CAST konnte nicht in TRY_CAST umgewandelt werden.
Datums- und Uhrzeitfunktionen¶
AT TIME ZONE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Konvertiert ein Eingangsdatum in den entsprechenden Datetimeoffset Wert in der Zielzeitzone. (AT TIME ZONE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
inputdate AT TIME ZONE timezone
CONVERT_TIMEZONE( <source_tz> , <target_tz> , <source_timestamp_ntz> )
CONVERT_TIMEZONE( <target_tz> , <source_timestamp> )
Beispiele¶
SELECT CAST('2022-11-24 11:00:45.2000000 +00:00' as datetimeoffset) at time zone 'Alaskan Standard Time';
Ergebnis:
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)));
Ergebnis:
DATE|
------------------------------+
2022-11-24 02:00:45.200 -09:00|
Code:
SELECT current_timestamp at time zone 'Central America Standard Time';
Ergebnis:
DATE|
------------------------------+
2022-10-10 10:55:50.090 -06:00|
Code:
SELECT
CONVERT_TIMEZONE('America/Costa_Rica', CURRENT_TIMESTAMP() /*** SSC-FDM-TS0024 - CURRENT_TIMESTAMP in At Time Zone statement may have a different behavior in certain cases ***/);
Ergebnis:
DATE|
------------------------------+
2022-10-10 10:55:50.090 -06:00|
Bekannte Probleme¶
Snowflake unterstützt nicht alle Zeitzonen, die SQL Server unterstützt. Sie können die unterstützten Zeitzonen unter diesem Link überprüfen.
SELECT current_timestamp at time zone 'Turks And Caicos Standard Time';
Ergebnis:
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';
Zugehörige EWIs¶
[SSC-FDM-TS0024](../../general/technical-documentation/issues-and-troubleshooting/functional-difference/sqlServerFDM. md#ssc-fdm-ts0024): CURRENT_TIMESTAMP in der AT TIME ZONE-Anweisung kann in bestimmten Fällen eine andere Verhaltensweise aufweisen.
[SSC-EWI-TS0063](../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/sqlServerEWI. md#ssc-ewi-ts0063): Zeitzone wird in Snowflake nicht unterstützt.
DATEADD¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt eine Ganzzahl zurück, die den angegebenen Datumsanteil des angegebenen Datums darstellt. (DATEPART in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
DATEADD (datepart , number , date )
DATEADD( <date_or_time_part>, <value>, <date_or_time_expr> )
Beispiele¶
Code:
SELECT DATEADD(year,123, '20060731') as ADDDATE;
Ergebnis:
ADDDATE|
------------------------+
2129-07-31 00:00:00.000|
Code:
SELECT
DATEADD(year, 123, '20060731') as ADDDATE;
Ergebnis:
ADDDATE|
------------------------+
2129-07-31 00:00:00.000|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
DATEDIFF¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt die Anzahl (als vorzeichenbehafteten Integer-Wert) der angegebenen Datumsgrenzen zurück, die zwischen dem angegebenen Startdatum und Enddatum überschritten wurden. (DATEDIFF in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
DATEDIFF ( datepart , startdate , enddate )
DATEDIFF( <date_or_time_part>, <date_or_time_expr1>, <date_or_time_expr2> )
Beispiele¶
Code:
SELECT DATEDIFF(year,'2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
Ergebnis:
DIFF|
----+
1|
Code:
SELECT DATEDIFF(year,'2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
Ergebnis:
DIFF|
----+
1|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
DATEFROMPARTS¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt einen Datumswert zurück, der den angegebenen Jahres-, Monats- und Tageswerten zugeordnet ist. (DATEFROMPARTS in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
DATEFROMPARTS ( year, month, day )
DATE_FROM_PARTS( <year>, <month>, <day> )
Beispiele¶
Code:
SELECT DATEFROMPARTS ( 2010, 12, 31 ) AS RESULT;
Ergebnis:
RESULT|
----------+
2022-12-12|
Code:
SELECT DATE_FROM_PARTS ( 2010, 12, 31 ) AS RESULT;
Ergebnis:
RESULT|
----------+
2022-12-12|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
DATENAME¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt eine Zeichenfolge zurück, die den angegebenen Datumsteil des angegebenen Datums darstellt. (DATENAME in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
DATENAME ( datepart , date )
Bemerkung
Diese Transformation verwendet mehrere Funktionen, die von den Eingaben abhängen
DATE_PART( <date_or_time_part> , <date_or_time_expr> )
MONTHNAME( <date_or_timestamp_expr> )
DAYNAME( <date_or_timestamp_expr> )
Beispiele¶
Code:
SELECT DATENAME(month, getdate()) AS DATE1,
DATENAME(day, getdate()) AS DATE2,
DATENAME(dw, GETDATE()) AS DATE3;
Ergebnis:
DATE1|DATE2|DATE3 |
-----+-----+-------+
May |3 |Tuesday|
Code:
SELECT MONTHNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE1,
DAYNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE2,
DAYNAME(CURRENT_TIMESTAMP() :: TIMESTAMP) AS DATE3;
Ergebnis:
DATE1|DATE2|DATE3 |
-----+-----+------+
May |Tue |Tue |
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
DATEPART¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt eine Ganzzahl zurück, die den angegebenen Datumsanteil des angegebenen Datums darstellt. (DATEPART in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
DATEPART ( datepart , date )
DATE_PART( <date_or_time_part> , <date_or_time_expr> )
Beispiele¶
Code:
SELECT DATEPART(YEAR, '10-10-2022') as YEAR
Ergebnis:
YEAR |
-----+
2022|
Code:
SELECT
DATE_PART(YEAR, '10-10-2022' :: TIMESTAMP) as YEAR;
Ergebnis:
YEAR |
-----+
2022|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
DAY¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt eine ganze Zahl zurück, die den Tag (Tag des Monats) des angegebenen Datums darstellt. (DAY in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
DAY ( date )
DAY( <date_or_timestamp_expr> )
Beispiele¶
Code:
SELECT DAY('10-10-2022') AS DAY
Ergebnis:
DAY |
-----+
10|
Code:
SELECT DAY('10-10-2022' :: TIMESTAMP) AS DAY;
Ergebnis:
DAY |
-----+
10|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
EOMONTH¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Diese Funktion gibt den letzten Tag des Monats zurück, der ein bestimmtes Datum enthält, mit einem optionalen Offset. (EOMONTH in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
EOMONTH ( start_date [, month_to_add ] )
LAST_DAY( <date_or_time_expr> [ , <date_part> ] )
Beispiele¶
Code:
SELECT EOMONTH (GETDATE()) AS Result;
Ergebnis:
RESULT|
----------+
2022-05-31|
Code:
SELECT
LAST_DAY(DATEADD('month', 0, CURRENT_TIMESTAMP() :: TIMESTAMP)) AS Result;
Ergebnis:
RESULT|
----------+
2022-05-31|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
GETDATE¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt den aktuellen Zeitstempel des Datenbanksystems als Datetime-Wert ohne den Zeitzonenoffset der Datenbank zurück. (GETDATE in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
GETDATE()
CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )
Beispiele¶
Code:
SELECT GETDATE() AS DATE;
Ergebnis:
DATE |
-----------------------+
2022-05-06 09:54:42.757|
Code:
SELECT CURRENT_TIMESTAMP() :: TIMESTAMP AS DATE;
Ergebnis:
DATE |
-----------------------+
2022-05-06 08:55:05.422|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
MONTH¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt eine Ganzzahl zurück, die den Monat des angegebenen Datums darstellt. (MONTH in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
MONTH( date )
MONTH ( <date_or_timestamp_expr> )
Beispiele¶
Code:
SELECT MONTH('10-10-2022') AS MONTH
Ergebnis:
MONTH|
-----+
10|
Code:
SELECT MONTH('10-10-2022' :: TIMESTAMP) AS MONTH;
Ergebnis:
MONTH|
-----+
10|
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SWITCHOFFSET¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Die Seite SWITCHOFFSET passt einen gegebenen Zeitstempelwert an eine bestimmte Zeitzonenverschiebung an. Dies geschieht durch numerische Werte. Weitere Informationen finden Sie unter SWITCHOFFSET (Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
Eine UDF-Hilfsfunktion erreicht eine Funktionsäquivalenz, außerdem hat es die gleiche Syntax wie die SWITCHOFFSET-Funktion in SQLServer.
SWITCHOFFSET ( datetimeoffset_expression, timezoneoffset_expression )
SWITCHOFFSET_UDF ( timestamp_tz_expression, timezoneoffset_expression )
Beispiel¶
Code:
SELECT
'1998-09-20 7:45:50.71345 +02:00' as fr_time,
SWITCHOFFSET('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;
Ergebnis:
fr_time cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00
Code:
SELECT
'1998-09-20 7:45:50.71345 +02:00' as fr_time,
PUBLIC.SWITCHOFFSET_UDF('1998-09-20 7:45:50.71345 +02:00', '-06:00') as cr_time;
Ergebnis:
fr_time cr_time
------------------------------- ----------------------------------
1998-09-20 7:45:50.71345 +02:00 1998-09-19 23:45:50.7134500 -06:00
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SYSDATETIME¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen datetime2(7)-Wert zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die Instanz von SQL Server ausgeführt wird. (SYSDATETIME in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
SYSDATETIME ( )
LOCALTIME()
Beispiele¶
Code:
SELECT SYSDATETIME ( ) AS SYSTEM_DATETIME;
Ergebnis:
SYSTEM_DATETIME |
-----------------------+
2022-05-06 12:08:05.501|
Code:
SELECT LOCALTIME ( ) AS SYSTEM_DATETIME;
Ergebnis:
SYSTEM_DATETIME |
-----------------------+
211:09:14 |
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
SYSUTCDATETIME¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt einen datetime2(7)-Wert zurück, der das Datum und die Uhrzeit des Computers enthält, auf dem die Instanz von SQL Server ausgeführt wird. (SYSUTCDATETIME in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
SYSUTCDATETIME ( )
SYSDATE()
Beispiele¶
Code:
SELECT SYSUTCDATETIME() as SYS_UTC_DATETIME;
Ergebnis:
SYSTEM_UTC_DATETIME |
---------------------------+
2023-02-02 20:59:28.0926502|
Code:
SELECT
SYSDATE() as SYS_UTC_DATETIME;
Ergebnis:
SYSTEM_UTC_DATETIME |
-------------------------+
2023-02-02 21:02:05.557 |
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.
YEAR¶
Applies to
[x] SQL Server
[x] Azure Synapse Analytics
Beschreibung¶
Gibt eine Ganzzahl zurück, die das Jahr des angegebenen Datums darstellt. (YEAR in Transact-SQL).
Beispielhaftes Quellcode-Muster¶
Syntax¶
YEAR( date )
YEAR ( <date_or_timestamp_expr> )
Beispiele¶
Code:
SELECT YEAR('10-10-2022') AS YEAR
Ergebnis:
YEAR |
-----+
2022 |
Code:
SELECT YEAR('10-10-2022' :: TIMESTAMP) AS YEAR;
Ergebnis:
YEAR |
-----+
2022 |
Bekannte Probleme ¶
Es wurden keine Probleme gefunden.
Zugehörige EWIs ¶
Keine zugehörigen EWIs.