经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
字母转为小写字母
来源:cnblogs  作者:Insus.NET  时间:2019/6/3 8:55:34  对本文有异议

传入大写字母,输出为小字母,如果传入小写字母,直接输出小写字母。传入非字母,输出为‘’。

如:A-->a;B-->b;C-->c;...Z-->z

参考函数:

 

  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5. -- =============================================
  6. -- Author: Insus.NET
  7. -- Blog: https://insus.cnblogs.com
  8. -- Create date: 2019-05-31
  9. -- Update date: 2019-05-31
  10. -- Description: 字母转为小写字母A-->a;B-->b;C-->c;...Z-->z
  11. -- 如果非字母转换为''
  12. -- =============================================
  13. CREATE FUNCTION [dbo].[svf_ConvertLetterToLowercaseLetter]
  14. (
  15. @Letter CHAR(1)
  16. ) RETURNS CHAR(1)
  17. AS
  18. BEGIN
  19. DECLARE @LowercaseLetter CHAR(1) = ''
  20. IF LEN(ISNULL(@Letter,'')) > 0
  21. BEGIN
  22. IF ASCII(@Letter) % 65 + 1 <= 26
  23. SET @LowercaseLetter = CHAR(ASCII(@Letter) + (97 - 65))
  24. IF ASCII(@Letter) % 97 + 1 <= 26
  25. SET @LowercaseLetter = @Letter
  26. END
  27. RETURN @LowercaseLetter
  28. END
  29. GO
Source Code

 

例子:

  1. SELECT
  2. [dbo].[svf_ConvertLetterToLowercaseLetter] ('A') AS 'A',
  3. [dbo].[svf_ConvertLetterToLowercaseLetter] ('a') AS 'a',
  4. [dbo].[svf_ConvertLetterToLowercaseLetter] ('B') AS 'B',
  5. [dbo].[svf_ConvertLetterToLowercaseLetter] ('b') AS 'b',
  6. [dbo].[svf_ConvertLetterToLowercaseLetter] ('C') AS 'C',
  7. [dbo].[svf_ConvertLetterToLowercaseLetter] ('c') AS 'c',
  8. [dbo].[svf_ConvertLetterToLowercaseLetter] ('#') AS '#'
Source Code

 

以上只是转换单独字母,如果转换为一串字符,字符中所有大写字母转为小写字母,那又该怎样操作呢? Insus.NET另外写一个函数:

 

  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5. -- =============================================
  6. -- Author: Insus.NET
  7. -- Blog: https://insus.cnblogs.com
  8. -- Create date: 2019-05-31
  9. -- Update date: 2019-05-31
  10. -- Description: 大写字符转为小写字母
  11. -- =============================================
  12. CREATE FUNCTION [dbo].[svf_ConvertToLowercase]
  13. (
  14. @Letter NVARCHAR(MAX)
  15. )
  16. RETURNS NVARCHAR(MAX)
  17. AS
  18. BEGIN
  19. DECLARE @Lowercase NVARCHAR(MAX) = N'',@i INT = 1
  20. WHILE @i <= LEN(@Letter)
  21. BEGIN
  22. DECLARE @currentChar CHAR(1) = SUBSTRING(@Letter, @i, 1)
  23. SET @Lowercase = @Lowercase +
  24. CASE WHEN ASCII(@currentChar) % 65 + 1 <= 26
  25. THEN CHAR(ASCII(@currentChar) + (97 - 65))
  26. ELSE
  27. @currentChar
  28. END
  29. SET @I = @I + 1
  30. END
  31. RETURN @Lowercase
  32. END
  33. GO
Source Code

 

实例演示:

 

原文链接:http://www.cnblogs.com/insus/p/10957153.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号