Postgres 12:使用INITCAP处理字段,保留首逗号前内容为全大写
Postgres 12 字段格式化解决方案
要实现第一个逗号前内容保持全大写,其余部分用INITCAP格式化的效果,可以使用以下SQL语句:
UPDATE your_table SET description = UPPER(regexp_match(description, '^[^,]+'))[1] || ', ' || INITCAP(trim(regexp_replace(description, '^[^,]+,', ''))) WHERE description ~ '^[^,]+,';
代码说明
regexp_match(description, '^[^,]+'):匹配字段开头到第一个逗号前的所有内容,[1]提取匹配结果的第一组,UPPER()确保这部分始终为全大写(原内容是小写也会自动转换)。regexp_replace(description, '^[^,]+,', ''):移除第一个逗号及之前的内容,trim()清理剩余内容开头的空格,INITCAP()将每个单词的首字母转为大写、其余字母转为小写。WHERE条件仅更新包含逗号的记录,避免无逗号的字段被错误修改。
示例效果
输入:CAT5, NETWORK CABLE, 5
输出:CAT5, Network Cable, 5
输入:cat6, usb cable, 3.0
输出:CAT6, Usb Cable, 3.0
内容的提问来源于stack exchange,提问作者anthonyabc
相关产品推荐
相关产品推荐

