使用SQL将单词的首字母转换为大写

我正在尝试编写一个查询,该查询将姓氏的首字母大写,也将姓氏的首字母大写。我已尝试运行以下查询。

但是输出不正确,例如“ james plummer”显示为“ James Pames”

[FirstName] = UPPER(LEFT(FirstName,1)) + LOWER(SUBSTRING(FirstName,2,LEN(FirstName))),[MiddleName],[LastName] = UPPER(LEFT(LastName,LEN(LastName)))
zongjie720 回答:使用SQL将单词的首字母转换为大写

那是因为在您的代码中,对于[LastName] [LastName]=UPPER(LEFT(LastName,1))+LOWER(SUBSTRING(FirstName,2,LEN(LastName)))

致电SUBSTRING时,您设置的是FirstName而不是LastName, 这会导致LastName然后输出为大写的第一个字符,但以FirstName的子字符串结尾,从而形成有趣的组合。

将其更改为: [LastName]=UPPER(LEFT(LastName,1))+LOWER(SUBSTRING(LastName,LEN(LastName))) 将解决您的问题

,

如果您使用的是sqlserver,则可以使用stuff函数

select [FirstName] = stuff(lower(FirstName),1,upper(left(FirstName,1))),[MiddleName],[LastName] = stuff(lower(LastName),upper(left(LastName,1)))
,

似乎您在姓+LOWER(SUBSTRING(FirstName,中的列有误

尝试更改为

,[LastName]=UPPER(LEFT(LastName,LEN(LastName)))
本文链接:https://www.f2er.com/3161602.html

大家都在问