Process Mining
Neuestes
False
Bannerhintergrundbild
Process Mining
Letzte Aktualisierung 17. Apr. 2024

SQL differences between Snowflake and SQL Server

SQL Server vs. Snowflake

In a local development environment, transformations are run on SQL Server, while Snowflake is used in Process Mining Automation CloudTM. Although most SQL statements will work both on SQL Server and Snowflake, there can be slight differences in syntax, which may lead to different return results.

So schreiben Sie SQL-Anweisungen, die auf beiden Datenbanksystemen funktionieren:

  • Schreiben Sie Feldnamen in doppelte Anführungszeichen, z. B. Table."Field" .
  • Verhindern der Verwendung von SQL-Funktionen, die sich in Snowflake und SQL Server unterscheiden, z. B. string_agg() und listagg() .
    Das pm_utils -Paket enthält eine Reihe von Funktionen, die für beide Datenbanktypen funktionieren, siehe Mehrere Datenbanken. Anstatt beispielsweise string_agg() oder listagg() zu verwenden, führt pm_utils.string_agg() zu demselben Verhalten für beide Datenbanken. Wenn pm_utils nicht die gewünschte Funktion enthält, sollte eine Chinja-Anweisung erstellt werden, um sicherzustellen, dass die richtige Funktion für jede Datenbank aufgerufen wird.

String concatenation

Um zu Strings zu kombinieren, verwenden Sie die Funktion pm_utils.concat() . Dies führt zu den gleichen Ergebnissen für SQL Server und Snowflake.
Beispiel: pm_utils.concat("This is a nice string", null) = "This is a nice string" Das Verketten von Zeichenfolgen sollte nicht mit Operatoren wie + oder || erfolgen, da sie sich für beide Datenbanken unterscheiden (Snowflake verwendet || und SQL Server verwendet + ). Auch die Standardfunktion concat() hat auf beiden Systemen ein unterschiedliches Verhalten:

SQL-Server

Snowflake

null werden ignoriert und als leere Zeichenfolge behandelt.
null führen dazu, dass das gesamte Ergebnis null ist.

Sortierung

Die Sortierung wird in Snowflake und SQL Server unterschiedlich gehandhabt.

Beispiel: ... order by "Attribute_1" desc, "Attribute_2" ...

NULL-Werte

SQL-Server

Snowflake

null werden standardmäßig zuerst sortiert (aufsteigend)
null werden standardmäßig als letztes sortiert (aufsteigend)

Handling capital letters

SQL-Server

Snowflake

Großbuchstaben werden wie erwartet sortiert (AaBbCc)

Sortiert zuerst nach Großbuchstaben, dann nach Nicht-Großbuchstaben (ABCabc)

Bindestriche

Beispiel: -Accountant-

SQL-Server

Snowflake

Bindestriche werden bei der Sortierung ignoriert (daher wird „-Accountant-“ genauso behandelt wie „Accountant“).

Bindestriche werden oben sortiert

Whitespace handling

Wenn Sie nach den Werten „A“ und „A“ gruppieren, wird dies in SQL Server als ein Wert angesehen, in Snowflake jedoch als zwei verschiedene Werte. Daher wird das Trimmen empfohlen, wenn Ihre Daten dieses Problem verursachen können.

Case sensitivity

Standardmäßig unterscheidet SQL Server die Groß-/Kleinschreibung, während Snowflake die Groß-/Kleinschreibung berücksichtigt. Das bedeutet, dass Table."Field" = "Some_value" und Table."Field" = "SOME_VALUE" dasselbe Resultset in SQL Server zurückgeben, aber möglicherweise zwei verschiedene Resultsets in Snowflake.

Es wird empfohlen, das Verhalten Ihrer lokalen SQL Server-Datenbank so zu ändern, dass es dem Verhalten von Snowflakes entspricht, um Probleme zu vermeiden. Dies kann erreicht werden, indem die Datenbanksortierung auf einen Wert festgelegt wird, bei dem die Groß-/Kleinschreibung beachtet wird.

  • SQL Server vs. Snowflake
  • String concatenation
  • Sortierung
  • NULL-Werte
  • Handling capital letters
  • Bindestriche
  • Whitespace handling
  • Case sensitivity

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.