我有一个名为[strCustomerName]
的列此专栏的内容包括' ray mantle' JAMES MAY' john DOE' RICHARD&朱迪米勒'等等...
我需要对表执行更新以更正所选列中所有值的大小写。 然后,更新将正确的值设置为“Ray Mantle' James May' John Doe' Richard&朱迪米勒'
使用SQL的任何帮助都会很棒。感谢
答案 0 :(得分:1)
我只想创建一个函数将您的字符串(或您的方案中的名称)转换为CAMEL
,如下所示:
CREATE FUNCTION [dbo].[CamelCase]
(@Str varchar(8000))
RETURNS varchar(8000) AS
BEGIN
DECLARE @Result varchar(2000)
SET @Str = LOWER(@Str) + ' '
SET @Result = ''
WHILE 1=1
BEGIN
IF PATINDEX('% %',@Str) = 0 BREAK
SET @Result = @Result + UPPER(Left(@Str,1))+
SubString (@Str,2,CharIndex(' ',@Str)-1)
SET @Str = SubString(@Str,
CharIndex(' ',@Str)+1,Len(@Str))
END
SET @Result = Left(@Result,Len(@Result))
RETURN @Result
END;
创建函数后,您可以在更新语句中使用它,如下所示:
UPDATE Customer
SET strCustomerName = dbo.CamelCase(strCustomerName)
你也可以直接在select语句中调用上面的函数来检查值是否会在运行上面的update语句之前正确更新:
select id
,dbo.CamelCase(strCustomerName) as CustomerName
from Customer;
希望这有帮助!