SQL中型別的轉換

2021-10-05 17:47:17 字數 1558 閱讀 4938

1、將數值轉成字串型別

方法1:呼叫to_char(int, text)函式,int為要轉換值,text為數值格式化模式,其中模式描述為:

模式 描述

9 帶有指定數值位數的值

0 帶前導零的值

.(句點) 小數點

,(逗號) 分組(千)分隔符

pr 尖括號內負值

s 帶符號的數值

l 貨幣符號

d 小數點

g 分組分隔符

mi 在指明的位置的負號(如果數字 <0)

pl 在指明的位置的正號(如果數字 >0)

sg 在指明的位置的正/負號

使用舉例:

select to_char

(12345

,'9999999999999999999'

)//結果『 12345』,結果字串前面有空格,位數跟格式化模式中9的位數有關;

select to_char

(12345

,'99999'

)//結果『12345』

select to_char

(12345

,'9999'

)//結果『####』,當模式串小於數字個數時,字串會顯示為#,位數跟格式化模式中9的位數有關;

select to_char

(12345,''

)//結果『』

問題:將數值轉成字串且不要前面的空格實現起來很麻煩,由於無法判斷格式化模式中9的位數。可用下面方法2解決:

方法2:通過||連線

『』||12345

2、將字串轉成數值

方法呼叫: to_number(text,text)函式,引數1是要轉的數字字串,引數2為模式引數

使用舉例:

select to_number

('12345'

,'9999999999999999999'

)//12345

select to_number

('12345'

,'99999'

)//12345

select to_number(''

||12345

,'9999'

)//1234,由於模式是4位,結果忽略最後一位;

select to_number

(' 12345'

,'9999999999999999999'

)//12345

select to_number

(' ab ,1,2a3,4b5'

,'9999999999999999999'

)//12345,會忽略所有字串中非數字字元

①select cast

(字段 as varchar) from 表名

②select convert

(varchar(50

),字段) from 表名

SQL中型別轉換函式

1.cast cast 表示式 as 資料型別 select 100.0 cast 1000 as int 1100.0 預設把字串轉換成浮整形 2.convert 萬能轉換 convert 資料型別,表示式 select 100.0 convert int,1000 1100.0 預設把字串轉換成...

SQL 中的資料型別轉換

今天碰到乙個問題,為什麼對int型別的字段,插入varchar也行,突然想到sql中也有資料型別轉換一說.資料型別轉換 在 transact sql 中,可能有兩個級別的資料型別轉換 資料型別轉換有兩種 cast 和 convert 函式將數值從乙個資料型別 區域性變數 列或其它表示式 轉換到另乙個...

sql型別轉換

型別轉換 字串和其他型別資料進行拼接元算的時候,需要顯示的把其他型別轉換為字串型別。view code 1 1cast expression as datatype 22 convert datatype expression 3declare name varchar 20 4 declare a...