【问题标题】:Function does not support collation函数不支持排序规则
【发布时间】:2021-04-06 11:48:56
【问题描述】:

我正在尝试在 Snowflake 中使用 UPPER/LOWER 函数,但收到错误消息“函数 UPPER 不支持排序规则”。

我有什么方法可以使用 UPPER/LOWER 函数还是有替代方法?

谢谢

【问题讨论】:

    标签: sql snowflake-cloud-data-platform


    【解决方案1】:

    您可以为此尝试 COLLATE 功能吗?

    https://docs.snowflake.net/manuals/sql-reference/functions/collate.html

    这表明您可以将排序规则中的字符大写以检查项目是否相同。就像是: COLLATE(MyField,'en-upper')

    谢谢

    【讨论】:

    • 嗨,本。谢谢你的建议。不幸的是,这段代码并没有改变结果。
    【解决方案2】:

    尝试通过将空字符串传递给 COLLATE 函数的 参数来从列中删除排序规则,然后将结果传递给 UPPER函数,就像这样UPPER(COLLATE(COLLATED_COLUMN, ''))

    我已经针对不支持排序规则的雪花中的一些正则表达式相关函数测试了此解决方案,值得一试。见using regexp_replace for replacing special characters in snowflake

    来自秘鲁的问候!

    【讨论】:

      【解决方案3】:

      我能够正确使用 UPPER() 函数(我的测试表上没有指定排序规则);

      从;中选择上(field1)

      https://docs.snowflake.net/manuals/sql-reference/functions/upper.html

      查看排序规则的文档,排序规则尚不支持此特定功能。查看支持的功能列表;

      https://docs.snowflake.net/manuals/sql-reference/collation.html#limited-support-for-collation-in-built-in-functions

      【讨论】:

      • 感谢您的链接。我从正在查询的表中检查了列类型,它看起来像是经过整理的,这可能是我无法使用这些函数的原因。
      猜你喜欢
      • 2019-07-07
      • 2021-09-17
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2017-05-17
      • 2011-02-11
      相关资源
      最近更新 更多