sql - 是否可以在雪花中使用 regexp_replce 进行大小写转换?
问题描述
我正在尝试使用在雪花中进行大小写转换REGEXP_REPLACE
,但它似乎不支持适当的转义序列。
示例:我想接受hello_world
并让它说Hello_World
我试过了:
SELECT REGEXP_REPLACE('hello_world', '(^[a-z]|_[a-z])', '\\U\\1', 1, 0, 'c');
替换字符串无法重写,模式:
'(^[a-z]|_[a-z])'
,替换字符串:'\U\1'
,原因:无效的转义序列
SELECT REGEXP_REPLACE('hello_world', '(^[a-z]|_[a-z])', UPPER('\\1'), 1, 0, 'c')
环绕UPPER
替换也没有像预期的那样做。
我真的很想避免一些连接解决方案,因为 SQL 会变得丑陋且难以快速维护。
另一个例子:我想把HelloWorld
它说出来hello_world
类似于上面我得到同样的错误:
SELECT REGEXP_REPLACE('HelloWorld', '([a-z])([A-Z])', '\\1\\L\\2', 1, 0, 'c');
替换字符串无法重写,模式:
'([a-z])([A-Z])'
,替换字符串:'\1\L\2'
,原因:无效的转义序列
解决方案
不需要复杂的正则表达式。Snowflake 支持string functionINITCAP()
,这正是你想要的:
select initcap('hello world')
推荐阅读
- python - 其他列中最早日期的python pandas列值
- python - 使用 python PIL.Image 将图像(png 或 jpg)转换为 webp 会引发错误
- kubernetes - 我已经在 k8s 中部署了示例 nginx 应用程序并配置了 istio,但是使用 istio 网关 ip 我无法访问外部的应用程序
- aws-lambda - serverless-offline-sqs:sls 离线卡在“离线:启动离线 SQS:local/us-east-1”。#171
- json - 为什么我的 facebook 应用程序无法接收网页 webhook?
- xml - 使用 XSLT 和 XSLT 1.0 (MSXML 6) 从 XML 输出文本
- pandas - 在 df2 中从 df1 中找到一个值并替换匹配行的其他值
- javascript - 查找所有带有转义公式的单元格 '=
- plot - 在 gnuplot 中的标签上添加彩色线?
- android - onPrepareOptionMenu menu?.findItem 返回 null android