微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

人民币小写转换为大写(SQLSERVER FUNCTION

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[hldFn_MoneyConvert]') and xtype in (N'FN',N'IF',N'TF'))drop function [dbo].[hldFn_MoneyConvert]GOSET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGO  -----  select aaa= dbo.bsmFn_MoneyConvert(108989)-----  select aaa= dbo.bsmFn_MoneyConvert(1001)CREATE      function  hldFn_MoneyConvert(  @money  money)returns varchar(200)asbegin    declare  @currDigital varchar(100),@result varchar(200)   declare  @Digital int    select @Digital = convert(int,@money ) ---- 注意数据范围   set  @Digital =  @Digital /100   ---- 注意数据范围    select @currDigital = convert(varchar(100),@Digital )   SELECT @currDigital = REPLACE(@currDigital,'0','零')   SELECT @currDigital = REPLACE(@currDigital,'1','壹')   SELECT @currDigital = REPLACE(@currDigital,'2','贰')   SELECT @currDigital = REPLACE(@currDigital,'3','叁')   SELECT @currDigital = REPLACE(@currDigital,'4','肆')   SELECT @currDigital = REPLACE(@currDigital,'5','伍')   SELECT @currDigital = REPLACE(@currDigital,'6','陆')   SELECT @currDigital = REPLACE(@currDigital,'7','柒')   SELECT @currDigital = REPLACE(@currDigital,'8','捌')   SELECT @currDigital = REPLACE(@currDigital,'9','玖')     ---- select currDigital=@currDigital   --- 添如数字 仟 佰 万拾 圆 整   SELECT @Result =   CASE Len(@currDigital)      WHEN 1 THEN  right(@currDigital,1)+'圆'      WHEN 2 THEN  Left(@currDigital,1)+'拾'+ right(@currDigital,1)+'圆'      WHEN 3 THEN  Left(@currDigital,1)+'佰'+substring(@currDigital,2,1)+'圆'      WHEN 4 THEN  Left(@currDigital,1)+'仟'+                   substring(@currDigital,1)+'佰'+                   substring(@currDigital,3,1)+'圆'     WHEN 5 THEN  Left(@currDigital,1)+'万'+                   substring(@currDigital,4,1)+'圆'      WHEN 6 THEN   Left(@currDigital,1)+'拾'+                   substring(@currDigital,5,1)+'圆'      WHEN 7 THEN  Left(@currDigital,6,1)+'圆'      WHEN 8 THEN  Left(@currDigital,7,1)+'圆'    ELSE '0'  END  declare  @ret varchar(100)  set @ret=@result  set  @Digital = convert(int,@money)  select @Digital = convert(int,@Digital %100 ) ---- 注意数据范围  select @currDigital = convert(varchar(100),'玖')  SELECT @Result = CASE Len(@currDigital)    WHEN 1 THEN  right(@currDigital,1)+'分'    WHEN 2 THEN  Left(@currDigital,1)+'角'+ right(@currDigital,1)+'分' End     select @result= REPLACE(@result,'拾零','拾') if CHARINDEX('角',@result)=0 set @result='零角'+@result set @result=@ret+@result+'整'return @resultend   GOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGO

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐