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

PostgreSQL列值转换:将大写格式转为驼峰式(Camel Case)

将全大写文本转换为标题式(首字母大写)格式的方法

你提到的“驼峰式”实际示例是Costa Rica这种每个单词首字母大写、单词间用空格分隔的标题格式(Title Case),下面针对主流数据库提供具体转换方案:

MySQL/MariaDB

方法1:正则替换(全版本兼容,支持多单词)

通过正则匹配每个单词的首字母,将其转为大写,其余字母转为小写:

SELECT REGEXP_REPLACE(LOWER(your_upper_column), '\\b(\\w)', UPPER('\\1')) AS formatted_column
FROM your_table;

方法2:MySQL 8.0+ 内置函数简化操作

8.0及以上版本提供INITCAP()函数,直接实现标题格式转换:

SELECT INITCAP(your_upper_column) AS formatted_column
FROM your_table;

PostgreSQL

PostgreSQL内置INITCAP()函数,直接调用即可:

SELECT INITCAP(your_upper_column) AS formatted_column
FROM your_table;

SQL Server

方法1:拆分拼接(兼容全版本)

通过拆分单词、逐个格式化后重新拼接:

SELECT 
    STRING_AGG(UPPER(LEFT(word, 1)) + LOWER(SUBSTRING(word, 2, LEN(word))), ' ') AS formatted_column
FROM your_table
CROSS APPLY STRING_SPLIT(your_upper_column, ' ')
GROUP BY your_table.id; -- 替换为你的表主键或唯一标识列

方法2:正则替换(SQL Server 2017+)

使用正则函数简化操作:

SELECT 
    REGEXP_REPLACE(LOWER(your_upper_column), '(\b[a-z])', UPPER('\1')) AS formatted_column
FROM your_table;

Oracle

Oracle内置INITCAP()函数,直接转换:

SELECT INITCAP(your_upper_column) AS formatted_column
FROM your_table;

额外:转换为无空格的真正驼峰式

如果需要的是无空格的驼峰格式(如costaRica小驼峰或CostaRica大驼峰),可以在上述基础上去掉空格并调整首字母:

小驼峰示例(MySQL)

SELECT CONCAT(
    LOWER(SUBSTRING(formatted, 1, 1)),
    SUBSTRING(formatted, 2)
) AS camel_case_column
FROM (
    SELECT REPLACE(REGEXP_REPLACE(LOWER(your_upper_column), '\\b(\\w)', UPPER('\\1')), ' ', '') AS formatted
    FROM your_table
) t;

大驼峰示例(MySQL)

SELECT REPLACE(REGEXP_REPLACE(LOWER(your_upper_column), '\\b(\\w)', UPPER('\\1')), ' ', '') AS pascal_case_column
FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:45:39