A. 如何使用sql語句將其變為字元串
先檢查金額列的數據是否都符合小數規范 用 cast(金額 as decimal(10,4))>500 或者 convert(decimal(10,4),金額)>500 試試 decimal的長度和小數位數根據自己需要設定
B. 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
說明這個函數對欄位值中全是數字但是數字間用「,」和「.」(逗號或點)隔開的都視為數字了!
C. SQL語句中, 怎樣把日期轉為字元串
CONVERT
(data_type[(length)],
expression
[,
style])
參數
expression
data_type
目標系統所提供的
數據類型
,包括
bigint
和
sql_variant。不能使用用戶
定義
的數據類型。有關可用的數據類型的更多信息,請參見數據類型。
length
nchar、nvarchar、char、varchar、binary
或
varbinary
數據類型的可選參數。
style
日期格式
樣式
,藉以將
datetime
或
smalldatetime
數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar
或
nvarchar
數據類型);
或者
字元串
格式樣式,藉以將
float、real、money
或
smallmoney
數據轉換為字元數據(nchar、nvarchar、char、varchar、nchar
或
nvarchar
數據類型)。
在表中,左側的兩列表示將
datetime
或
smalldatetime
轉換為字元數據的
style
值。
給
style
值加
100,可獲得包括世紀數位的四位年份
(yyyy)。
D. 怎麼把sql date都轉換為string
使用類似下面的語句:
select Convert(varchar(10),getdate(),120)
注意裡面的 Convert() 函數。
1.定義和用法
CONVERT() 函數是把日期轉換為新數據類型的通用函數。
CONVERT() 函數可以用不同的格式顯示日期/時間數據。
2.語法
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 規定目標數據類型(帶有可選的長度)。data_to_be_converted 含有需要轉換的值。style 規定日期/時間的輸出格式。
E. 如何用SQL語句批量替換資料庫字元串
方法一:varchar和nvarchar類型是支持replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace 替換 text ntext 數據類型欄位的語句 。
1
update 表名 set 欄位名=replace(cast(與前面一樣的欄位名 as varchar(8000)) ,'原本內容','想要替換成什麼')
方法二:
1
update [表名] set 欄位名 = replace(與前面一樣的欄位名,'原本內容','想要替換成什麼')
F. 如何用plsql語句把一個表的所有列都轉換為字元型
方法一:varchar和nvarchar類型是支持replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace
替換
text
ntext
數據類型欄位的語句
。
update
表名
set
欄位名=replace(cast(與前面一樣的欄位名
as
varchar(8000))
,'原本內容','想要替換成什麼')
方法二:
update
[表名]
set
欄位名
=
replace(與前面一樣的欄位名,'原本內容','想要替換成什麼')