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
關於阿拉伯數字,大寫的阿拉伯數字
阿拉伯數字是從阿拉伯傳到歐洲的,起源是印度。它的偉大,它之所以被廣泛使用,併成為近現代數學與科學的基礎,就在於它是可以用十個符號就可以表達任何自然數的十進位值制記數法。馬克思曾把十進位值制記數法稱為人類 最妙的發明之一 http htm而十進位值記數法卻是中國率先發明的。公元前1400年中國商代甲骨...
阿拉伯數字的來歷,阿拉伯數字的來歷是什麼
羊駒 公元3世紀,印度科學家巴格達發明了阿拉伯數字。公元4世紀後阿拉伯數字中零的符號日益明確,使記數逐漸發展成十進位值制。大約公元9世紀,印度數字傳入阿拉伯地區,從原來的婆羅門數字匯出兩種阿拉伯數字 被中東的阿拉伯人使用的東阿拉伯數字和被西班牙的阿拉伯人使用的西阿拉伯數字。東阿拉伯數字和阿拉伯人使用...
什麼是阿拉伯數字,什麼是阿拉伯數字,什麼是羅馬數字?他們有什麼區別?
阿拉伯數字是怎樣來的 阿拉伯數字1 2 3 4 5 6 7 8 9。0是國際上通用的數碼。這種數字的創制並非阿拉伯人,但也不能抹掉阿拉伯人的功勞。阿拉伯數字最初出自印度人之手,也是他們的祖先在生產實踐中逐步創造出來的。公元前3000年,印度河流域居民的數字就已經比較進步,並採用了十進位制的計演算法。...