Process Mining
Más reciente
False
Imagen de fondo del banner
Process Mining
Última actualización 30 de abr. de 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.

Para escribir instrucciones SQL que funcionen en ambos sistemas de bases de datos:

  • Escriba los nombres de los campos entre comillas dobles, por ejemplo Table."Field".
  • Evite el uso de funciones SQL que son diferentes en Snowflake y SQL Server, por ejemplo, string_agg() y listagg().
    El paquete pm_utils viene con un conjunto de funciones que funcionan en ambos tipos de bases de datos, consulta Varias bases de datos. Por ejemplo, en lugar de utilizar string_agg() o listagg(), pm_utils.string_agg() se dará como resultado el mismo comportamiento para ambas bases de datos. Si pm_utils no contiene la función deseada, deberás crear una instrucción Jinja para asegurarte de que se llama a la función correcta en cada base de datos.

String concatenation

Para combinar en cadenas, usa la función pm_utils.concat() . Esto producirá los mismos resultados tanto para SQL Server como para Snowflake.
Ejemplo: pm_utils.concat("This is a nice string", null) = "This is a nice string" La concatenación de cadenas no debe realizarse con operadores como + o ||, ya que son diferentes para ambas bases de datos (Snowflake usa || y SQL Server usa +). Además, la función concat() estándar tiene un comportamiento diferente en ambos sistemas:

Servidor SQL

Snowflake

null serán ignorados y tratados como una cadena vacía.
null valores harán que todo el resultado sea null.

Clasificación

La clasificación se gestiona de forma diferente en Snowflake y en el servidor SQL.

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

Valores nulos

Servidor SQL

Snowflake

null se ordenarán por defecto en primer lugar (ascendente)
null se ordenarán por defecto en último lugar (ascendente)

Handling capital letters

Servidor SQL

Snowflake

las mayúsculas se ordenan como se esperaba (AaBbCc)

primero ordena por mayúsculas, luego por no mayúsculas (ABCabc)

Barras

Ejemplo: -Accountant-

Servidor SQL

Snowflake

los guiones se ignoran al ordenar (por lo que '-Contador-' se trata igual que 'Contador')

los guiones se ordenarán en la parte superior

Whitespace handling

Cuando se agrupan por valores "A" y "A", esto se ve como un valor en SQL Server, pero como dos valores diferentes en Snowflake. Por lo tanto, se recomienda recortar si sus datos pueden causar este problema.

Case sensitivity

De forma predeterminada, SQL Server no distingue entre mayúsculas y minúsculas, mientras que Snowflake distingue entre mayúsculas y minúsculas. Esto significa que Table."Field" = "Some_value" y Table."Field" = "SOME_VALUE" devolverán el mismo conjunto de resultados en SQL Server, pero potencialmente dos conjuntos de resultados diferentes en Snowflake.

Se le recomienda cambiar el comportamiento de su base de datos local de SQL Server para que coincida con el comportamiento de Snowflake, a fin de evitar cualquier problema. Esto se puede lograr estableciendo la colación de la base de datos en un valor que distinga entre mayúsculas y minúsculas.

  • SQL Server vs. Snowflake
  • String concatenation
  • Clasificación
  • Valores nulos
  • Handling capital letters
  • Barras
  • Whitespace handling
  • Case sensitivity

Was this page helpful?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Logotipo blanco de UiPath
Confianza y seguridad
© 2005-2024 UiPath. All rights reserved.