SQL中如何将记录的首字母大写

Posted

技术标签:

【中文标题】SQL中如何将记录的首字母大写【英文标题】:How to capitalize the first letter of a record in SQL 【发布时间】:2014-04-22 15:48:25 【问题描述】:

我有一个带有 Comments 字段的表,我想将每条记录中字符串的第一个字母大写,例如将“duplicate”更改为“Duplicate”。有些记录一开始就已经有一个大写字母,有些甚至可能是一个数字。

我试过了

SELECT UPPER(LEFT(Comments,1))+SUBSTRING(Comments,2,LEN(Comments)) FROM dbo.Template_Survey

但它失败了,因为我的字段是“ntext”类型。

在句号(句号)之后将第一个字母大写也很有用,但除非有人已经编写了代码,否则这不是必需的。

提前致谢。

【问题讨论】:

你的列数据类型是什么? 看看这个链接:***.com/questions/55054/… 数据类型为 ntext。我现在会看一下链接,谢谢,尽管我在发布问题之前确实搜索了这个网站很长一段时间。 那个链接每个单词的首字母大写,我只需要字符串首字母大写。 【参考方案1】:

将您的 ntext 转换为 nvarchar(max) 并执行上下操作。示例如下。

SELECT UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))))  
FROM dbo.Template_Survey;

以下应该适用于更新。

Update dbo.Template_Survey SET Comments = 
UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))));  

【讨论】:

这很好,但我的错误,我如何将其转换为更新查询以永久替换为大写的第一个字母。【参考方案2】:

将您的列转换为 nvarchar(max)

这是工作示例

http://sqlfiddle.com/#!3/5dd26/3

要更新记录,您可以使用:

Update dbo.Template_Survey
 set Comments = UPPER(LEFT(cast(Comments as nvarchar(max)),1)) +
LOWER(SUBSTRING(cast(Comments as nvarchar(max)),2,
LEN(cast(Comments as nvarchar(max)))))  

【讨论】:

这很好,但我的错误,我如何将其转换为更新查询以永久替换为大写的第一个字母。【参考方案3】:

我在这里的帖子有点晚了,但这个解决方案更短。这适用于 sql server 2008+:

SELECT
  UPPER(CAST(Comments as nchar(1)))+LOWER(STUFF(CAST(Comments as nvarchar(max)),1,1,''))
FROM dbo.Template_Survey

【讨论】:

以上是关于SQL中如何将记录的首字母大写的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript 将字符串中每个单词的首字母大写?

如何使用ruby / rails将所有大写字母转换为适当的首字母大写字母,其余为小写?

如何在 Perl 中将字符串中每个单词的首字母大写?

将数据框列中每个单词的首字母大写

sql中怎么提取大写字母,例如给了一个人的英文姓名,然后用它们的首字母做缩写,Lily James LJ

Python 3 - 从莫尔斯电码翻译时如何将每个句子的首字母大写