SQL SERVER函數(shù)將人民幣數(shù)字轉(zhuǎn)換成大寫形式
來源:易賢網(wǎng) 閱讀:1442 次 日期:2014-11-03 12:09:03
溫馨提示:易賢網(wǎng)小編為您整理了“SQL SERVER函數(shù)將人民幣數(shù)字轉(zhuǎn)換成大寫形式”,方便廣大網(wǎng)友查閱!

SQL SERVER函數(shù)將人民幣數(shù)字轉(zhuǎn)換成大寫形式

CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,5))

RETURNS varchar(100) WITH ENCRYPTION

AS

BEGIN

DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int

SET @n_data=RIGHT(SPACE(14)+CAST(CAST(ABS(@num*100) AS bigint) AS varchar(20)),14)

SET @c_data=''

SET @i=1

WHILE @i<=14

BEGIN

SET @n_str=SUBSTRING(@n_data,@i,1)

IF @n_str<>' '

BEGIN

IF not ((SUBSTRING(@n_data,@i,2)='00') or

((@n_str='0') and ((@i=4) or (@i=8) or (@i=12) or (@i=14))))

SET @c_data=@c_data+SUBSTRING('零壹貳叁肆伍陸柒捌玖',CAST(@n_str AS int)+1,1)

IF not ((@n_str='0') and (@i<>4) and (@i<>8) and (@i<>12))

SET @c_data=@c_data+SUBSTRING('仟佰拾億仟佰拾萬仟佰拾圓角分',@i,1)

IF SUBSTRING(@c_data,LEN(@c_data)-1,2)='億萬'

SET @c_data=SUBSTRING(@c_data,1,LEN(@c_data)-1)

END

SET @i=@i+1

END

IF @num<0

SET @c_data='(負(fù)數(shù))'+@c_data

IF @num=0

SET @c_data='零圓'

IF @n_str='0'

SET @c_data=@c_data+'整'

RETURN(@c_data)

END

SQL SERVER函數(shù)將人民幣數(shù)字轉(zhuǎn)換成大寫形式

閑著也是閑著,歡迎大家多提寶貴意見

--阿拉伯?dāng)?shù)字轉(zhuǎn)中文大寫數(shù)字

Create function NToCC(@n int)

returns varchar(2)

as

begin

declare @s varchar(2)

if @n=0

set @s=''零''

if @n=1

set @s=''壹''

if @n=2

set @s=''貳''

if @n=3

set @s=''叁''

if @n=4

set @s=''肆''

if @n=5

set @s=''伍''

if @n=6

set @s=''陸''

if @n=7

set @s=''柒''

if @n=8

set @s=''捌''

if @n=9

set @s=''玖''

return @s

end

--可支持到上億

Create function numbertoChineseBigString(@m money)

returns varchar(255)

begin

declare @i varchar(255)

declare @f varchar(255)

declare @r varchar(255)

declare @s varchar(255)

set @s=convert(varchar(255),@m)

if charindex(''.'',@s)>0

begin

set @i=substring(@s,1,charindex(''.'',@s)-1)

set @f=substring(@s,charindex(''.'',@s)+1,len(@s))

end

else

set @i=@s

set @r=''''

declare @k int

set @k=len(@i)

while @k>=1

begin

--最多9位

if @k=9

set @r=@r+

dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))

--@i

+''億''

if @k=8

set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+''千''

if @k=7

set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+''佰''

if @k=6

set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+''拾''

if @k=5

set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+''萬''

if @k=4

set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+''千''

if @k=3

set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+''佰''

if @k=2

set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+''拾''

if @k=1

set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+''元''

set @k=@k-1

end

if convert(float,@f)=0

set @r=@r+''整''

else

begin

if substring(@s,1,1)>''''

set @r=@r+dbo.NToCC(convert(int,substring(@f,1,1)))+''角''

if substring(@s,2,1)>''''

set @r=@r+dbo.NToCC(convert(int,substring(@f,2,1)))+''分''

end

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看數(shù)據(jù)庫
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)