傳入大寫字母,輸出爲小字母,若是傳入小寫字母,直接輸出小寫字母。傳入非字母,輸出爲‘’。ide
如: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_ConvertLetterToLowercaseLetter] ( @Letter CHAR(1) ) RETURNS CHAR(1) AS BEGIN DECLARE @LowercaseLetter CHAR(1) = '' IF LEN(ISNULL(@Letter,'')) > 0 BEGIN IF ASCII(@Letter) % 65 + 1 <= 26 SET @LowercaseLetter = CHAR(ASCII(@Letter) + (97 - 65)) IF ASCII(@Letter) % 97 + 1 <= 26 SET @LowercaseLetter = @Letter END RETURN @LowercaseLetter END GO
例子:spa
SELECT [dbo].[svf_ConvertLetterToLowercaseLetter] ('A') AS 'A', [dbo].[svf_ConvertLetterToLowercaseLetter] ('a') AS 'a', [dbo].[svf_ConvertLetterToLowercaseLetter] ('B') AS 'B', [dbo].[svf_ConvertLetterToLowercaseLetter] ('b') AS 'b', [dbo].[svf_ConvertLetterToLowercaseLetter] ('C') AS 'C', [dbo].[svf_ConvertLetterToLowercaseLetter] ('c') AS 'c', [dbo].[svf_ConvertLetterToLowercaseLetter] ('#') AS '#'
以上只是轉換單獨字母,若是轉換爲一串字符,字符中全部大寫字母轉爲小寫字母,那又該怎樣操做呢? Insus.NET另外寫一個函數:3d
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_ConvertToLowercase] ( @Letter NVARCHAR(MAX) ) RETURNS NVARCHAR(MAX) AS BEGIN DECLARE @Lowercase NVARCHAR(MAX) = N'',@i INT = 1 WHILE @i <= LEN(@Letter) BEGIN DECLARE @currentChar CHAR(1) = SUBSTRING(@Letter, @i, 1) SET @Lowercase = @Lowercase + CASE WHEN ASCII(@currentChar) % 65 + 1 <= 26 THEN CHAR(ASCII(@currentChar) + (97 - 65)) ELSE @currentChar END SET @I = @I + 1 END RETURN @Lowercase END GO
實例演示:code