Sql 将列更新为大写小写

Sql update column to upper lower case

我有一个名为 [strCustomerName] 的列

此列的值如 'ray mantle'、'JAMES MAY'、'john DOE'、'RICHARD & Judy Miller' 等...

我需要对 table 执行 更新 以更正所选列中所有值的大小写。 然后更新会将值大小写正确设置为 'Ray Mantle'、'James May'、'John Doe'、'Richard & Judy Miller'

对 SQL 的任何帮助都会很棒。谢谢

我只想创建一个函数来将您的字符串(或您场景中的名称)转换为 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 语句中直接调用上述函数来检查值是否会在 运行 上面的更新语句之前正确更新:

select id
      ,dbo.CamelCase(strCustomerName) as CustomerName
from Customer;

希望对您有所帮助!

SQL Fiddle Demo