当前位置:首页 » 编程语言 » sql如何将数字转为汉字
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql如何将数字转为汉字

发布时间: 2022-08-31 08:02:32

sql server中小写数字转汉字(不是转成金额啊)

declare @str varchar(20)
set @str ='201005281234'

declare @i int, @n_str varchar(1), @data varchar(40)
set @data=''
set @i=1

while @i<= len(@str)
begin
set @n_str=substring(@str,@i,1)
begin
set @data=@data + substring('零一二三四五六七八九',cast(@n_str as int)+1,1)
end
set @i=@i+1
end

select @str "数字" , @data "汉字"

--结果如下-----
数字 汉字
---------- -----------------------
201005281234 二零一零零五二八一二三四

(1 row(s) affected)

当然,为了使用方便你可以把上面的代码调整为一个函数来使用

❷ sql中如何将阿拉伯数字转为汉字

Create Procere AtoC
@ChangeMoney Money
as
Set Nocount ON
Declare @String1 char(20)
Declare @String2 char(30)
Declare @String4 Varchar(100)
Declare @String3 Varchar(100) –从原A值中取出的值
Declare @i int –循环变量
Declare @J Int –A的值乘以100的字符串长度
Declare @Ch1 Varchar(100) –数字的汉语读法
Declare @Ch2 Varchar(100) –数字位的汉字读法
Declare @Zero Int –用来计算连续有几个零
Declare @ReturnValue VarChar(100)

Select @ReturnValue = ”
Select @String1 = ‘零壹贰叁肆伍陆柒捌玖’
Select @String2 = ‘万仟佰拾亿仟佰拾万仟佰拾元角分’

Select @String4 = Cast(@ChangeMoney*100 as int)

select @J=len(cast((@ChangeMoney*100) as int))

Select @String2=Right(@String2,@J)

Select @i = 1

while @i<= @j Begin

Select @String3 = Substring(@String4,@i,1)

if @String3<>‘0′ Begin

Select @Ch1 = Substring(@String1, Cast(@String3 as Int) + 1, 1)
Select @Ch2 = Substring(@String2, @i, 1)
Select @Zero = 0 –表示本位不为零
end
else Begin
If (@Zero = 0) Or (@i = @J – 9) Or (@i = @J – 5) Or (@i = @J – 1)
Select @Ch1 = ‘零’
Else
Select @Ch1 = ”

Select @Zero = @Zero + 1 –表示本位为0

–如果转换的数值需要扩大,那么需改动以下表达式 I 的值。
Select Ch2 = ”

If @i = @J – 10 Begin
Select @Ch2 = ‘亿’
Select @Zero = 0
end

If @i = @J – 6 Begin
Select @Ch2 = ‘万’
Select @Zero = 0
end

if @i = @J – 2 Begin
Select @Ch2 = ‘元’
Select @Zero = 0
end

If @i = @J
Select @Ch2 = ‘整’

end

Select @ReturnValue = @ReturnValue + @Ch1 + @Ch2

select @i = @i+1
end

–最后将多余的零去掉
If CharIndex(‘仟仟’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘仟仟’, ‘仟’)

If CharIndex(‘佰佰’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘佰佰’, ‘佰’)

If CharIndex(‘零元’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零元’, ‘元’)

If CharIndex(‘零万’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零万’, ‘万’)

If CharIndex(‘零亿’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零亿’, ‘亿’)

If CharIndex(‘零整’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零整’, ‘整’)

If CharIndex(‘零佰’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零佰’, ‘零’)

If CharIndex(‘零仟’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零仟’, ‘零’)

If CharIndex(‘元元’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘元元’, ‘元’)

Select @ReturnValue
GO

❸ 急!!!如何将数据库中的数字显示成汉字

应该再建一个表,用来存放哪个数字代表哪个城市:
id city
11 北京
1101 东城
。。。。。。。。
然后根据会员的地址到该表中查询出相应的地名,这是个很简单的事情。。。
这属于数据库方面的,就是写个简单的sql查询语句,动态网页中可以实现。写在存储过程中也可以。

❹ SQL怎么把某列的数字转为汉字,同时保证已有的汉字不变,数字为另一张表里面的编码

select isnull(a.name,b.name)
From a
Left join B on a.name=b.id

就这样处理就好

❺ 怎么在sql数据库里把查询到的数据变为中文的形式。

这东西,要么是人为操作把数据内容给修改了,这种一旦数据库没备份,一般不可恢复。
要么就是前台显示页面做了特殊处理,比如字符1代表男,0代表女,你这种有可能是某个字符代表其特定的中文含义,这个别人帮不了你,只能自己看程序解决。

❻ sql 存储过程怎么将读入的数字转化为文字

稍等下,我把你刚刚结束问题的补充说明看下
是这样的,我不知道你给客户做的默认值假如修的话,以前的数据需不需要一起更改,假如是用视图的话,以前的数据是会一起跟着改动的。
如果你是需要这种效果的话,我可以把视图的那种方式跟你说下。如果不是,我在考虑下,看看还有没有更好的办法!
补充:
看到了!我有个折中的方法,就是你在往A表插入数据的时候就用存储过程,然后再存储过程里面读取B表的数据,将数据插入A。你看行不行?
create
procere
InsertValue
(@fieldA
as
varchar(20),@fieldB
as
varchar(20),@fieldC
as
varchar(20))
as
begin
Set
NoCount
On--关闭返回,这样用程序执行的时候才能将这个存储过程加到一个事务里面,如果没有事务,可删除
Declare
@field1
as
varchar(20),@field2
as
varchar(20),@field3
as
varchar(20)
select
top
1
@field1=字段1,@field2=字段2,@field3=字段3
from
表B
insert
into
表A
Select(@fieldA,@fieldB,@fieldC,@field1,@field2,@field3)
Set
NoCount
Off
--和前面的ON对应
end
执行的时候用:exec
InsertValue
('a',
'b',
'c')
希望对你有帮助