大写字母或小写字母转换为数字

大写字母或小写字母转换为数字A-->1,a-->1;B-->2,b-->2;C-->3,c-->3;...Z-->26,z-->26
 如果非字母转换为-1


 

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:      Insus.NET
-- Blog:        https://insus.cnblogs.com
-- Create date: 2019-05-23
-- Update date: 2019-05-23
-- Description: 大写字母或小写字母转换为数字A-->1,a-->1;B-->2,b-->2;C-->3,c-->3;...Z-->26,z-->26
--                如果非字母转换为-1
-- =============================================
CREATE FUNCTION [dbo].[svf_ConvertLetterToNumber] 
(
  @letter CHAR(1)
) RETURNS INT
AS
BEGIN
    DECLARE @ascii INT = -1
    IF LEN(ISNULL(@letter,'')) > 0 
    BEGIN        
        IF ASCII(@letter) % 65 + 1 <= 26
            SET @ascii = ASCII(@letter) % 65+ 1

        IF ASCII(@letter) % 97 + 1 <=26
            SET @ascii = ASCII(@letter) % 97 + 1
    END        
    
    RETURN @ascii
END
GO
Source Code

 

演示:

 

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

 

转载于:https://www.cnblogs.com/insus/p/10954054.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值