當前位置:首頁 » 編程語言 » 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')
希望對你有幫助