❶ 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')
希望对你有帮助