我正在尝试编写一个查询,该查询将姓氏的首字母大写,也将姓氏的首字母大写。我已尝试运行以下查询。
但是输出不正确,例如“ james plummer”显示为“ James Pames”
[FirstName] = UPPER(LEFT(FirstName,1)) + LOWER(SUBSTRING(FirstName,2,LEN(FirstName)))
, [MiddleName]
, [LastName] = UPPER(LEFT(LastName,1)) + LOWER(SUBSTRING(FirstName,2,LEN(LastName)))
答案 0 :(得分:2)
那是因为在您的代码中,对于[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,2,LEN(LastName)))
将解决您的问题
答案 1 :(得分:2)
如果您使用的是sqlserver
,则可以使用stuff
函数
select [FirstName] = stuff(lower(FirstName), 1, 1, upper(left(FirstName, 1)))
,[MiddleName]
,[LastName] = stuff(lower(LastName), 1, 1, upper(left(LastName, 1)))
答案 2 :(得分:0)
似乎您在姓+LOWER(SUBSTRING(FirstName,
中的列有误
尝试更改为
,[LastName]=UPPER(LEFT(LastName,1))+LOWER(SUBSTRING(LastName,2,LEN(LastName)))