Process Mining
2022.10
False
横幅背景图像
Process Mining
上次更新日期 2024年4月19日

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 Suite. 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.

要编写可在两个数据库系统上运行的 SQL 语句,请执行以下操作:

  • 用双引号将字段名称写入,例如 Table."Field"
  • 防止使用 Snowflake 和 SQL Server 中不同的 SQL 函数,例如 string_agg()listagg()
    pm_utils包附带一组可用于这两种数据库类型的函数,请参阅多个数据库。 例如,如果使用string_agg() listagg()pm_utils.string_agg(),则两个数据库将产生相同的行为,而不是 或 。如果pm_utils不包含所需的函数,则应创建Jinja语句,以确保在每个数据库上调用正确的函数。

String concatenation

要合并为字符串,请使用pm_utils.concat()函数。 这将为 SQL Server 和 Snowflake 生成相同的结果。
示例: pm_utils.concat("This is a nice string", null) = "This is a nice string"不应使用+||等运算符连接字符串,因为这两个数据库的运算符不同(Snowflake 使用|| ,SQL Server 使用+ )。 此外,标准concat()函数在两个系统上的行为也不同:

SQL 服务器

Snowflake

null 值将被忽略并被视为空字符串。
null 值将导致整个结果为null

排序

在 Snowflake 和 SQL Server 中,排序的处理方式有所不同。

示例: ... order by "Attribute_1" desc, "Attribute_2" ...

Null 值

SQL 服务器

Snowflake

null 将默认排在前面 (升序)
null 默认情况下排在最后 (升序)

Handling capital letters

SQL 服务器

Snowflake

大写字母按预期排序 (AaBbCc)

首先按大写字母排序,然后按非大写字母排序 (ABCabc)

虚线

示例: -Accountant-

SQL 服务器

Snowflake

排序时将忽略短划线(因此“-Accountant-”与“Accountant”相同)

短划线将在顶部排序

Whitespace handling

当您按值“A”和“A”进行分组时,这在 SQL Server 中被视为一个值,但在 Snowflake 中被视为两个不同的值。 因此,如果您的数据可能会导致此问题,则建议进行修剪。

Case sensitivity

默认情况下,SQL Server 不区分大小写,而 Snowflake 区分大小写。 这意味着Table."Field" = "Some_value"Table."Field" = "SOME_VALUE"将在 SQL Server 中返回相同的结果集,但在 Snowflake 中可能会返回两个不同的结果集。

建议您更改本地 SQL Server 数据库的行为以匹配雪花行为,以防止出现任何问题。 这可以通过将数据库排序规则设置为区分大小写的值来实现。

  • SQL Server vs. Snowflake
  • String concatenation
  • 排序
  • Null 值
  • Handling capital letters
  • 虚线
  • Whitespace handling
  • Case sensitivity

此页面是否有帮助?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath 白色徽标
信任与安全
© 2005-2024 UiPath. All rights reserved.