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

 自定义Scalar-valued Function函数,把字母转换为大写字母。

字母转为大写字母a-->A;b-->B;c-->C;...z-->Z
如果非字母转换为''

 

 

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

 

例子演示:

 

  1. SELECT
  2. [dbo].[svf_ConvertLettertoUppercaseLetter] ('A') AS 'A',
  3. [dbo].[svf_ConvertLettertoUppercaseLetter] ('a') AS 'a',
  4. [dbo].[svf_ConvertLettertoUppercaseLetter] ('B') AS 'B',
  5. [dbo].[svf_ConvertLettertoUppercaseLetter] ('b') AS 'b',
  6. [dbo].[svf_ConvertLettertoUppercaseLetter] ('C') AS 'C',
  7. [dbo].[svf_ConvertLettertoUppercaseLetter] ('c') AS 'c',
  8. [dbo].[svf_ConvertLettertoUppercaseLetter] ('Z') AS 'Z',
  9. [dbo].[svf_ConvertLettertoUppercaseLetter] ('z') AS 'z',
  10. [dbo].[svf_ConvertLettertoUppercaseLetter] ('$') AS '$'
Source Code

 

以上函数,只能对单独字母进行转换,如果一次性转换一串字符呢,这个功能可以有,参考下面:

 

  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_ConvertToUppercase]
  13. (
  14. @Letter NVARCHAR(MAX)
  15. )
  16. RETURNS NVARCHAR(MAX)
  17. AS
  18. BEGIN
  19. DECLARE @Uppercase NVARCHAR(MAX) = N'',@i INT = 1
  20. WHILE @i <= LEN(@Letter)
  21. BEGIN
  22. DECLARE @currentChar CHAR(1) = SUBSTRING(@Letter, @i, 1)
  23. SET @Uppercase = @Uppercase +
  24. CASE WHEN ASCII(@currentChar) % 97 + 1 <= 26
  25. THEN CHAR(ASCII(@currentChar) - (97 - 65))
  26. ELSE
  27. @currentChar
  28. END
  29. SET @I = @I + 1
  30. END
  31. RETURN @Uppercase
  32. END
  33. GO
Source Code

 

示例:

 

原文链接:http://www.cnblogs.com/insus/p/10957431.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号