如何将SQL中substring函数结果的首字母大写、其余字母小写?
解决方案
要实现将substring(Column2,charindex('-', Column2)+1,len(Column2))的返回结果首字母大写、其余字母小写,可通过SQL字符串函数组合实现,以下是几种常用写法:
写法一:LEFT + RIGHT + UPPER + LOWER组合
UPPER(LEFT(substring(Column2,charindex('-', Column2)+1,len(Column2)), 1)) + LOWER(RIGHT(substring(Column2,charindex('-', Column2)+1,len(Column2)), LEN(substring(Column2,charindex('-', Column2)+1,len(Column2))) - 1))
- 逻辑:先用
LEFT提取子串的第一个字符并转为大写,再用RIGHT提取剩余字符并转为小写,最后拼接两部分内容。
写法二:STUFF + UPPER + LOWER组合
STUFF(LOWER(substring(Column2,charindex('-', Column2)+1,len(Column2))), 1, 1, UPPER(LEFT(substring(Column2,charindex('-', Column2)+1,len(Column2)), 1)))
- 逻辑:先将整个子串转为小写,再用
STUFF函数把第一个字符替换为原首字符的大写形式。
简化版(避免重复写子串表达式)
如果不想重复书写原提取子串的表达式,可借助CROSS APPLY先提取目标内容再处理:
SELECT UPPER(LEFT(ExtractedStr, 1)) + LOWER(RIGHT(ExtractedStr, LEN(ExtractedStr)-1)) AS FormattedStr FROM YourTable CROSS APPLY ( SELECT substring(Column2,charindex('-', Column2)+1,len(Column2)) AS ExtractedStr ) AS SubStr
内容的提问来源于stack exchange,提问作者user3306489
相关产品推荐
相关产品推荐

