我正在尝试编写一个查询,该查询将姓氏的首字母大写,也将姓氏的首字母大写。我已尝试运行以下查询。
但是输出不正确,例如“ james plummer”显示为“ James Pames”
[FirstName] = UPPER(LEFT(FirstName,1)) + LOWER(SUBSTRING(FirstName,2,LEN(FirstName))),[MiddleName],[LastName] = UPPER(LEFT(LastName,LEN(LastName)))
我正在尝试编写一个查询,该查询将姓氏的首字母大写,也将姓氏的首字母大写。我已尝试运行以下查询。
但是输出不正确,例如“ james plummer”显示为“ James Pames”
[FirstName] = UPPER(LEFT(FirstName,1)) + LOWER(SUBSTRING(FirstName,2,LEN(FirstName))),[MiddleName],[LastName] = UPPER(LEFT(LastName,LEN(LastName)))
那是因为在您的代码中,对于[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)))