You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake如何用REGEXP_REPLACE将逗号后首字母转换为大写

Snowflake 逗号后首字母大写实现方案

原写法失效原因

原写法失效的核心原因是:Snowflake 中 REGEXP_REPLACE 的替换值参数会先完成计算,再代入正则替换逻辑。你写的UPPER('\\\1')实际是先把字符串\1转大写(结果还是\1),再作为替换模板,没有对捕获到的实际字符执行大写转换。

实现方案

方案1:轻量场景(无需保留原有全大写片段)

如果不需要保留输入中已有的全大写片段(比如LED会被转为Led),可以直接用INITCAP函数指定分隔符为逗号,代码最简:

SELECT INITCAP('Apple,ball,cat', ',') AS result;
-- 输出:Apple,Ball,Cat

方案2:兼容原有大小写格式(推荐)

如果需要保留输入中已有的大小写格式(比如LED保持全大写,仅将逗号后首字母小写的字符转为大写),可以通过拆分+逐片段处理+拼接实现:

-- 测试示例1:输入 Apple,ball,cat
WITH input AS (SELECT 'Apple,ball,cat' AS raw_str)
SELECT LISTAGG(
    UPPER(LEFT(value,1)) || SUBSTR(value,2),
    ','
) AS processed_str
FROM input, TABLE(SPLIT_TO_TABLE(input.raw_str, ','))
GROUP BY input.raw_str;
-- 输出:Apple,Ball,Cat

-- 测试示例2:输入 Bulb,LED,tube
WITH input AS (SELECT 'Bulb,LED,tube' AS raw_str)
SELECT LISTAGG(
    UPPER(LEFT(value,1)) || SUBSTR(value,2),
    ','
) AS processed_str
FROM input, TABLE(SPLIT_TO_TABLE(input.raw_str, ','))
GROUP BY input.raw_str;
-- 输出:Bulb,LED,Tube

内容的提问来源于stack exchange,提问作者Teresa Rosemary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:18:01