zoukankan      html  css  js  c++  java
  • 字母转为大写字母

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

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

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    -- =============================================
    -- Author:      Insus.NET
    -- Blog:        https://insus.cnblogs.com
    -- Create date: 2019-05-31
    -- Update date: 2019-05-31
    -- Description: 字母转为大写字母a-->A;b-->B;c-->C;...z-->Z
    --              如果非字母转换为''
    -- =============================================
    CREATE FUNCTION [dbo].[svf_ConvertLettertoUppercaseLetter] 
    (
      @Letter CHAR(1)
    ) RETURNS CHAR(1)
    AS
    BEGIN
        DECLARE @UppercaseLetter CHAR(1) = ''          
        IF LEN(ISNULL(@Letter,'')) > 0 
        BEGIN
            IF ASCII(@Letter) % 97 + 1 <= 26
                SET @UppercaseLetter = CHAR(ASCII(@Letter) - (97 - 65)) 
    
            IF ASCII(@Letter) % 65 + 1 <= 26
                SET @UppercaseLetter = @Letter
        END      
        RETURN @UppercaseLetter
    END
    GO
    Source Code

    例子演示:

    SELECT
    [dbo].[svf_ConvertLettertoUppercaseLetter] ('A') AS 'A',
    [dbo].[svf_ConvertLettertoUppercaseLetter] ('a') AS 'a',
    [dbo].[svf_ConvertLettertoUppercaseLetter] ('B') AS 'B',
    [dbo].[svf_ConvertLettertoUppercaseLetter] ('b') AS 'b',
    [dbo].[svf_ConvertLettertoUppercaseLetter] ('C') AS 'C',
    [dbo].[svf_ConvertLettertoUppercaseLetter] ('c') AS 'c',
    [dbo].[svf_ConvertLettertoUppercaseLetter] ('Z') AS 'Z',
    [dbo].[svf_ConvertLettertoUppercaseLetter] ('z') AS 'z',
    [dbo].[svf_ConvertLettertoUppercaseLetter] ('$') AS '$'
    Source Code

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

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:      Insus.NET
    -- Blog:        https://insus.cnblogs.com
    -- Create date: 2019-05-31
    -- Update date: 2019-05-31
    -- Description: 小写字符转为大写字母
    -- =============================================
    CREATE FUNCTION [dbo].[svf_ConvertToUppercase] 
    (
        @Letter NVARCHAR(MAX)
    ) 
    RETURNS NVARCHAR(MAX)
    AS
    BEGIN
        DECLARE @Uppercase NVARCHAR(MAX) = N'',@i INT = 1    
        WHILE @i <= LEN(@Letter) 
            BEGIN          
                DECLARE @currentChar CHAR(1) = SUBSTRING(@Letter, @i, 1)
                SET @Uppercase = @Uppercase + 
                CASE WHEN ASCII(@currentChar) % 97 + 1 <= 26 
                THEN CHAR(ASCII(@currentChar) - (97 - 65)) 
                ELSE
                   @currentChar
                END 
       
                SET @I = @I + 1 
            END
            
        RETURN @Uppercase
    END
    GO
    Source Code

    示例:

  • 相关阅读:
    接口测试再思考
    Python开发简单爬虫
    正则表达式(Python)
    Git常用方法
    CNN--卷积神经网络从R-CNN到Faster R-CNN的理解(CIFAR10分类代码)
    一看就懂的K近邻算法(KNN),K-D树,并实现手写数字识别!
    我是这样一步步理解--主题模型(Topic Model)、LDA(案例代码)
    你想知道的特征工程,机器学习优化方法都在这了!收藏!
    从似然函数到EM算法(附代码实现)
    一次性弄懂马尔可夫模型、隐马尔可夫模型、马尔可夫网络和条件随机场!(词性标注代码实现)
  • 原文地址:https://www.cnblogs.com/insus/p/10957431.html
Copyright © 2011-2022 走看看