把中文數字轉化成阿拉伯數字?有什麼好的方法?用sql語句

時間 2021-10-14 20:20:41

1樓:匿名使用者

從**中匯出的位址列目中的405和數字405是不一樣的,這個如何更改?我一般採用0替代成0,3替代成3,以此類推,一般要代替十次,有些太麻煩。

2樓:匿名使用者

如果你的x欄位是字串"12345"等純數字可以使用:

select convert(int,x) from 表有計算可以直接在查詢的時候計算如:

select convert(int,x)*convert(int,x)+convert(int,x)-convert(int,x) from 表

3樓:

你說的中文數字應該是字元

一、二、三……吧?這是字元判斷轉為數字,可以用decode和case when 來解決。如:

select decode(table_column,'一',1,'二',2,'三',3,'四',4,'五',5,'六',6,'七',7,'八',8,'九',9,'零',0,'') from (select '六' as table_column from dual) your_table;

select case when table_column = '一' then 1

when table_column = '二' then 2

when table_column = '三' then 3

when table_column = '四' then 4

when table_column = '五' then 5

when table_column = '六' then 6

when table_column = '七' then 7

when table_column = '八' then 8

when table_column = '九' then 9

when table_column = '零' then 0

else null end

from (select '六' as table_column from dual) your_table;

4樓:玖違

1911349528

5樓:

convert(numeric(18,0),欄位)

6樓:匿名使用者

sql語句??中文數字和阿拉伯數字有什麼區別嗎???不是都是1,2,3。。。嗎?

sql語句中怎樣將字元型別轉換成數字型別

7樓:匿名使用者

先檢查金額列的資料是否都符合小數規範,轉為數字格式只有是數字的字串才能轉,如000012轉為12,.55轉為0.55,若是個英文符號等字元轉了就報無效數字型別的錯。

轉換的方式很多,但是字串轉換成數字的前提是字串中只包含了數字或者小數點。

可使用convert函式,cast 和convert可以顯式轉換資料型別,在某些情況下sql會根據實際情況自動轉換!不過建議顯式的轉換一下,這樣的話可讀性高一點!

因為字串不一定能轉換成數字,所以用上面的,加上錯誤處理比較。

例子:declare @a varchar(10)

set @a='as23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

set @a='23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

結果:declare @a varchar(10)

set @a='as23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

set @a='23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

8樓:海影幻

to_number()轉為數字格式

to_char()轉為字串格式

to_date()轉為時間格式

..........

轉為數字格式只有是數字的字串才能轉,這句話可能有點歧義, 通常字元前面帶0或點的數字字串轉數字用到,如000012轉為12,.55轉為0.55,若是個英文符號等字元轉了就報無效數字型別的錯,如果遇到兩種資料型別不一致情況資料庫預設是會轉的,如關聯 ta.

a=ba.b ta.a是字串,ba.

b是數字,或者將ta.a插入到ba.b資料庫就會自動轉

9樓:匿名使用者

int i = new integer("2");

10樓:匿名使用者

cast('111' as int) 不過首先你得判斷是不是 數字 isnumber('111')=1 是數字 =0 不是數字

sqlserver中如何把字串轉換成數字

11樓:千鋒教育

在sql server 2005中,將表中字串轉換為數字的函式共2個:

1. convert(int,欄位名) 例如:select convert(int,'3')

2. cast(欄位名 as int) 例如:select cast('3' as int)

其實,一般情況下沒有必要把字串轉換為數字型別

假如需要比較兩個欄位是否相等,但是一個欄位為字串型別,一個為數字型別,用「=」比較兩個值是否相等時,sql server會自動把字串轉換為數字再比較的!

例如:select da.title_name,dsc.name

from dbo.dv_duty dd

inner join dv_second_class dsc on (dsc.id=dd.area)

left join dv_asset da on(da.id=dd.record_id and dd.type='2')

where dd.area is not null

這個sql中,inner join dv_second_class dsc on (dsc.id=dd.area) 中dsc.

id為數字型別,dd.area為字元型別,相當於這樣on(1='1')的判斷,這時候就會自動吧字串的'1'轉換為數字型別再比較的。

但是也有弊端,一旦字元型別轉換為數字型別出錯(說明字串的確就非數字組成的),sql就會丟擲異常。

sql server 2005中有判斷欄位是否為數字的函式:

isnumeric(欄位名) -----假如欄位是數字型別返回1,不是就返回0

但是好像有的時候不好使,比如:select isnumeric('3,34') 就返回1

說明這個函式對欄位值中全是數字但是數字間用「,」和「.」(逗號或點)隔開的都視為數字了!

12樓:匿名使用者

sql server中的數值型別分為兩種,一種是精確的數值型別,具體的資料型別有:bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,這些資料型別能夠精確的表明某以數值;另一種是近似的數值型別,具體就是float和real。浮點資料為近似值,因此,並非資料型別範圍內的所有值都能精確地表示。

有些時候我們需要將這些數值型別轉換為字串型別,用到的轉換函式就是cast和convert,這兩個函式的作用都是進行型別轉換,只不過語法格式不同。據說在轉換時還是有一定的區別的,不過我個人更習慣於使用convert函式,應該這個函式一方面更像是個函式的語法,另一方面在做時間和數值轉換成字串時還可以指定轉換的格式。

對於精確數值的資料型別,轉換出來的字串就是我們儲存的數值。比如:

declare @i intset @i=123456789

print 'test:'+convert(varchar(20),@i)

輸出就是:test:123456789

而如果對於近似數值的資料型別,那麼可就沒有那麼簡單了。

declare @i floatset @i=123456789

print 'test:'+convert(varchar(20),@i)

輸出結果:test:1.23457e+008

輸出的結果是使用科學計數法來表示的,再看看可否通過指定轉換樣式來指定不使用科學計數法呢?幫助文件中說到float 或 real 轉換為字元資料時的 style 值:

0(預設值)最大為 6 位數。根據需要使用科學記數法。

1 始終為 8 位值。始終使用科學記數法。

2 始終為 16 位值。始終使用科學記數法。

我們的值是123456789,超過了6位數.所以不管是0還是1,2結果都會使用科學計數法來表示。那麼要怎麼樣才能將我們的資料不轉換成科學計數法而輸出呢?

比較簡單的辦法就是將近似資料轉換為精確資料,然後再將精確資料轉換成字串。

同樣以上面的例子為例, 進行兩次資料型別的轉換如下:

declare @i floatset @i=123456789

print 'test:'+convert(varchar(20),convert(int,@i))

輸出:test:123456789如果是有小數,那麼我們要轉換出小數位的話,可以轉換成decimal,轉換出的小數位數在定義decimal時指定。

比如要輸出4位小數,那麼轉換**是:

declare @i floatset @i=123456789.12

print 'test:'+convert(varchar(20),convert(decimal(18,4),@i))

輸出:test:123456789.1200

13樓:匿名使用者

cast("1" as int)

convert(int,"1")

sql語句中如何將字元型別轉換成數字型別?

14樓:匿名使用者

先檢查金額列的資料是否都符合小數規範,轉為數字格式只有是數字的字串才能轉,如000012轉為12,.55轉為0.55,若是個英文符號等字元轉了就報無效數字型別的錯。

轉換的方式很多,但是字串轉換成數字的前提是字串中只包含了數字或者小數點。

可使用convert函式,cast 和convert可以顯式轉換資料型別,在某些情況下sql會根據實際情況自動轉換!不過建議顯式的轉換一下,這樣的話可讀性高一點!

因為字串不一定能轉換成數字,所以用上面的,加上錯誤處理比較。

例子:declare @a varchar(10)

set @a='as23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

set @a='23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

結果:declare @a varchar(10)

set @a='as23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

set @a='23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

阿拉伯數字的由來,阿拉伯數字的來歷

古代印度人創造了阿拉伯數字後,大約到了公元7世紀的時候,這些數字傳到了阿拉伯地區。到13世紀時,義大利數學家斐波那契寫出了 算盤書 在這本書裡,他對阿拉伯數字做了詳細的介紹。後來,這些數字又從阿拉伯地區傳到了歐洲,歐洲人只知道這些數字是從阿拉伯地區傳入的,所以便把這些數字叫做阿拉伯數字。以後,這些數...

阿拉伯數字有哪些,除了阿拉伯數字還有什麼數字?

c囡囡佑 數字1一並不是一個數字,而是數字背後的法則中的原質,其他所有的數字都是由它而生的。一代表 同體 一種如未分化之能量般的 絕對 有人說一既非奇數亦非偶數,然而卻又是兩者。所以一結合了奇數與偶數的對立,以及宇宙中所有其他的對立。數字2 一 覺知到它自己的時候,創造出兩極化的能量,兩個新的元素,...

阿拉伯數字的成語,關於阿拉伯數字的成語

民生為本 一落千丈 一勞永逸 一馬當先 一成不變 一草一木 一通百通 一脈相承 一無是處 一無所知 一目瞭然 一鼓作氣 一絲不苟 一分為二 一狐之腋 一決雌雄 一刻千金 一鳴驚人 一事無成 一瀉千里 一氣呵成 一片汪洋 一敗塗地 一斑窺豹 一本萬利 一本正經.二話沒說 二八佳人 二分明月 二話不說 ...