SQL 字符 數字 轉換字母


1、將字符中數字轉換為中文大寫的數字,

注意

100==>一零零   而非==>一百

123==>一二三   而非==>一百二十三

CREATE FUNCTION Fn_NumberConvertChinase(@number NVARCHAR(50))
RETURNS NVARCHAR(20)
AS
BEGIN
DECLARE @res NVARCHAR(20)
DECLARE @char CHAR(1)
SET @res = ''
SET @char = substring(@number,1,1)
SELECT @res = (CASE @char
    WHEN '1' THEN ''
    WHEN '2' THEN ''
    WHEN '3' THEN ''
    WHEN '4' THEN ''
    WHEN '5' THEN ''
    WHEN '6' THEN ''
    WHEN '7' THEN ''
    WHEN '8' THEN ''
    WHEN '9' THEN ''
    WHEN '0' THEN ''
    ELSE substring(@number,1,1) END 
)
IF(len(@number) > 1)
BEGIN
    SET @res =  @res + dbo.fn_numberconvertchinase(substring(@number,2,len(@number)-1))
END
RETURN @res 
END

2、獲取字符首字母,並轉大寫

CREATE FUNCTION Fn_GetPy(@str NVARCHAR(4000))
RETURNS NVARCHAR(4000)
AS
BEGIN
    DECLARE @strlen INT;
    DECLARE @re NVARCHAR(4000);
    --字符中數字轉大寫
    SELECT @str=dbo.fn_numberconvertchinase(@str);
    
    DECLARE @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1))
    INSERT INTO @t(chr,letter)
      SELECT '','A' UNION ALL SELECT '','B' UNION ALL
      SELECT '','C' UNION ALL SELECT '','D' UNION ALL
      SELECT '','E' UNION ALL SELECT '','F' UNION ALL
      SELECT '','G' UNION ALL SELECT '','H' UNION ALL
      SELECT '','J' UNION ALL SELECT '','K' UNION ALL
      SELECT '','L' UNION ALL SELECT '','M' UNION ALL
      SELECT '','N' UNION ALL SELECT '','O' UNION ALL
      SELECT '','P' UNION ALL SELECT '','Q' UNION ALL
      SELECT '','R' UNION ALL SELECT '','S' UNION ALL
      SELECT '','T' UNION ALL SELECT '','W' UNION ALL
      SELECT '','X' UNION ALL SELECT '','Y' UNION ALL
      SELECT '','Z';
      SELECT @strlen=len(@str),@re='';
  
      WHILE @strlen>0
      BEGIN
        SELECT TOP 1 @re=letter+@re,@strlen=@strlen-1
          FROM @t a WHERE chr<=substring(@str,@strlen,1)
          ORDER BY chr DESC
        IF @@rowcount=0
          SELECT @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
      END
  RETURN(UPPER(@re))
END

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM