當前位置:首頁 » 編程語言 » sql字元串轉數字

sql字元串轉數字

發布時間: 2022-05-16 08:34:00

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

to_number()轉為數字格式
to_char()轉為字元串格式
to_date()轉為時間格式
..........
轉為數字格式只有是數字的字元串才能轉,這句話可能有點歧義,
通常字元前面帶0或點的數字字元串轉數字用到,如000012轉為12,.55轉為0.55,若是個英文符號等字元轉了就報無效數字類型的錯,如果遇到兩種數據類型不一致情況資料庫默認是會轉的,如關聯
ta.a=ba.b
ta.a是字元串,ba.b是數字,或者將ta.a插入到ba.b資料庫就會自動轉

㈡ SQL 關於字元轉換成數值型的問題

select
cast(rno
as
int)
as
bh
from
table1
where
isnumeric(rno)=1
order
by
1
isnumeric(rno)=1的目的是如果rno不能轉換為數字就不轉換,避免出錯。
order
by
1是按轉換後的數字排序,即按cast(rno
as
int)排序,也可以寫成order
by
cast(rno
as
int)

㈢ sql中如何把字元串轉換為數字

可以使用函數:ISNUMERIC
當輸入表達式得數為一個有效的整數、浮點數、money 或 decimal 類型,那麼 ISNUMERIC 返回 1;
否則返回 0。返回值為 1 確保可以將 expression 轉換為上述數字類型中的一種。

㈣ oracle sql字元串轉數字問題

1.將字元串類型轉換為數字類型。此方法使用tonumber()直接轉換。具體語法是tonumber(STR)。

㈤ 在SQL語句裡面如何將字元型轉換成數字型

先檢查金額列的數據是否都符合小數規范,用cast(金額 asdecimal(10,4))>500或者

convert(decimal(10,4),金額)>500

註:decimal的長度和小數位數根據自己需要設定

sql中將字元串數字轉換成數字:

方法一:SELECT CAST('123' AS SIGNEDinteger);

方法二:SELECT CONVERT('123',SIGNED);

方法三:SELECT '123'+0;

(5)sql字元串轉數字擴展閱讀:

能將字元型轉換成數字型,就能將數字轉化為字元,對於精確數值的數據類型,轉換出來的字元串就是我們存儲的數值。比如:

declare @i int

set @i=123456789

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

輸出就是:test:123456789

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

declare @i float

set @i=123456789

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

輸出結果:test:1.23457e+008

㈥ SQL中怎麼將字元串轉

在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
說明這個函數對欄位值中全是數字但是數字間用「,」和「.」(逗號或點)隔開的都視為數字了!

㈦ SQL 中怎麼把字元串轉換為數字

具體方法如下:

  1. 將字元的數字轉成數字,比如'0'轉成0可以直接用加法來實現;

    例如:將pony表中的d 進行排序,可d的定義為varchar,可以這樣解決;

    select * from pony order by (d+0);

  2. 在進行ifnull處理時,比如 ifnull(a/b,'0') 這樣就會導致 a/b成了字元串,因此需要把'0'改成0,即可解決此困擾;

  3. 比較數字和varchar時,比如a=11,b="11ddddd";

    則 select 11="11ddddd"相等;

    若絕對比較可以這樣:

    select binary 11 =binary "11ddddd";

  4. 字元集轉換 : CONVERT(xxx USING gb2312);

    類型轉換和SQL Server一樣,就是類型參數有點點不同 : CAST(xxx AS 類型),CONVERT(xxx,類型);

    類型必須用下列的類型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。

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

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

㈨ Sql中有沒有把字元串轉換成int數值類型

直接用 cast('1' as integer)

PostgreSQL中直接使用轉換符號::(連續兩個冒號)就可以實現類型的強制轉換。

可以使用函數:ISNUMERIC;當輸入表達式得數為一個有效的整數、浮點數、money 或 decimal 類型,那麼 ISNUMERIC 返回 1;否則返回 0。返回值為 1 確保可以將 expression 轉換為上述數字類型中的一種。

串接子串

「串接」是 Σ* 上的重要二元運算。對於 Σ* 中的兩個字元串 s 和 t,它們的串接被定義為在 s 中的字元序列之後跟隨著 t 中的字元序列,並被指示為 st。例如,Σ = {a, b, …, z},並且 s = bear 且 t = hug,則 st = bearhug 而 ts = hugbear。

字元串串接是結合性的,但非交換性運算。空串充當單位;對於任何字元串 s,有 εs = sε = s。所以,集合 Σ* 和串接運算形成了幺半群,就是從 Σ 生成的自由幺半群。此外,長度函數定義從 Σ* 到非負整數的幺半群同態。

以上內容參考:網路-字元串

㈩ SQL中字元串轉換成數值

4、數據類型轉換函數
函數名 操作 例 結果
ASC(S) 求第一個字元串的ASCII碼 ASC("what") 87
CHR(N) 求ASCII碼的字元 CHR(87) w
STR(R,L,D) 數值轉換成字元,L為長度,D為小數位數 X=3.1415
STR(X,6,2) 3.14
VAL(S) 字元串轉換為數值 VAL("123") 123.00
CTOD(S) 字元串轉日期 CTOD('11/01/2002') 11/01/2002
DTOC(D) 日期轉換成字元串 DTOC(DATE()) 11/01/2002
DTOS(D) 把日期轉成年月日式的字元串 DTOS(DATE()) 20021101
CTOT(C) 字元串轉成日期時間型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am
DTOT(D) 日期型轉為日期時間型 DTOT(DATE()) 11/25/2001 00:00:01am
TTOC(T) 日期時間型轉為字元型 TTOC(DATETIME()) 11/25/2001 00:00:01am
TTOD(T) 日期時間型轉為日期型 TTOD(DATETIME()) 11/25/2001
IIF(LE,E1,E2) 邏輯判斷 IIF(A>0,"YES","NO") YES

熱點內容
存儲指令集 發布:2024-03-29 14:39:27 瀏覽:648
資料庫表刪除數據 發布:2024-03-29 14:39:26 瀏覽:366
出c語言整除 發布:2024-03-29 14:28:22 瀏覽:571
芬尼壓縮機 發布:2024-03-29 14:24:11 瀏覽:463
電腦數據實時上傳本地伺服器軟體 發布:2024-03-29 14:07:57 瀏覽:919
尋秦記源碼 發布:2024-03-29 13:56:17 瀏覽:495
linux的備份命令 發布:2024-03-29 13:41:22 瀏覽:382
csgo建議什麼配置 發布:2024-03-29 13:31:44 瀏覽:979
電腦ftp服務如何禁用 發布:2024-03-29 13:24:48 瀏覽:332
驅動精靈驅動解壓 發布:2024-03-29 13:07:49 瀏覽:565