MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sql – 将数字转换为单词 – 第一,第二,第三等大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有人知道如果可以在sql中取一个整数变量并将其转换为表格的等效数:第一,第二,第三,第四等?

谢谢

解决方法

这似乎是一种更简单的方法,一种很好的递归算法
create functION fnIntegerToWords(@number as BIGint) 
    RETURNS VARCHAR(1024)
AS

BEGIN
      DECLARE @Below20 TABLE (ID int identity(0,1),Word varchar(32))
      DECLARE @Below100 TABLE (ID int identity(2,Word varchar(32))
      INSERT @Below20 (Word) VALUES 
                        ( 'Zero'),('One'),( 'Two' ),( 'Three'),( 'Four' ),( 'Five' ),( 'Six' ),( 'Seven' ),( 'Eight'),( 'Nine'),( 'Ten'),( 'Eleven' ),( 'Twelve' ),( 'Thirteen' ),( 'Fourteen'),( 'Fifteen' ),('Sixteen' ),( 'Seventeen'),('Eighteen' ),( 'Nineteen' ) 

       INSERT @Below100 VALUES ('Twenty'),('Thirty'),('Forty'),('Fifty'),('Sixty'),('Seventy'),('Eighty'),('Ninety')

    declare @belowHundred as varchar(126) 

    if @number > 99 begin
        SELEct @belowHundred = dbo.fnIntegerToWords( @number % 100)
    end

    DECLARE @English varchar(1024) = 

    (

      SELECT Case 
        WHEN @number = 0 THEN  ''

        WHEN @number betweeN 1 AND 19 
          THEN (SELECT Word FROM @Below20 WHERE ID=@number)

       WHEN @number betweeN 20 AND 99   
         THEN  (SELECT Word FROM @Below100 WHERE ID=@number/10)+ '-' +
               dbo.fnIntegerToWords( @number % 10) 

       WHEN @number betweeN 100 AND 999   
         THEN  (dbo.fnIntegerToWords( @number / 100)) +' Hundred '+
             Case WHEN @belowHundred <> '' THEN 'and ' + @belowHundred else @belowHundred end 

       WHEN @number betweeN 1000 AND 999999   
         THEN  (dbo.fnIntegerToWords( @number / 1000))+' Thousand '+
             dbo.fnIntegerToWords( @number % 1000)  

       WHEN @number betweeN 1000000 AND 999999999   
         THEN  (dbo.fnIntegerToWords( @number / 1000000))+' Million '+
             dbo.fnIntegerToWords( @number % 1000000) 

       WHEN @number betweeN 1000000000 AND 999999999999   
         THEN  (dbo.fnIntegerToWords( @number / 1000000000))+' Billion '+
             dbo.fnIntegerToWords( @number % 1000000000) 

            ELSE ' INVALID INPUT' END
    )

    SELECT @English = RTRIM(@English)

    SELECT @English = RTRIM(LEFT(@English,len(@English)-1))
        WHERE RIGHT(@English,1)='-'

    RETURN (@English)

END

大佬总结

以上是大佬教程为你收集整理的sql – 将数字转换为单词 – 第一,第二,第三等全部内容,希望文章能够帮你解决sql – 将数字转换为单词 – 第一,第二,第三等所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:第三第二