SQL Server 轻松修改数据的大小写

下面就是用来创建名为udf_CorrectCasing函数的脚本。这个函数将接受任何长度的字符串,并返回相同的字符串,但字符串中每个单词的首字母都会转换为大写字母,而单词剩下的部分都转换为小写字母。例如,如果将字符串“hello world”传递给函数,那么就会返回“Hello World”:

CREATE FUNCTION udf_CorrectCasing
(
   @String VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
BEGIN
   DECLARE @Length INT, @Increment INT, @NewString VARCHAR(MAX)
   DECLARE @CurrentCharacter CHAR(1), @PreviousCharacter CHAR(1)  
   SET @Length = LEN(LTRIM(RTRIM(@string)))
   SET @Increment = @Length - 1
   SET @NewString = ''
   SET @PreviousCharacter = ''
   SET @String = LOWER(@String) 
   WHILE @Increment >= 0
   BEGIN
     SET @CurrentCharacter = SUBSTRING(@String, (@Length-@Increment), 1)
     SET @NewString = @NewString + CASE WHEN @PreviousCharacter = '' THEN
         UPPER(@CurrentCharacter) ELSE @CurrentCharacter END
     SET @PreviousCharacter = @CurrentCharacter
     SET @Increment = @Increment - 1
   END
   RETURN(@NewString)
 
END


函数详解

  我们需要将传递给该函数的字符串中的所有字符都循环一遍,看看是不是按我们的需要改变大小写状态。这可能会让函数运行起来相对慢些,但不会慢到你能注意到的地步。还有其他的方法可以完成这个函数的任务,例如在公共语言运行库(CLR)中使用正则表达式(regular expression),不过对于我们要达到的目的,用这个函数就可以了。

  首先,我们确定字符串的长度。接着,我们设置了一些随后将在函数中用到的协助器变量。然后,我们将所有的字符都设置为小写。在循环里,我们创建了一个新字符串,添加最新字符并通过检查前一个字符是否为空格符来决定该字符的大小写状态。如果前一个字符是空格符,那么下一个字符就应当转换为大写状态。一旦把字符串里所有的字符都循环了一遍,就返回该新字符串。


需要用到这函数直接调用就行了:
SELECT dbo.udf_CorrectCasing(Address) FROM Customers;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值