① sql 中怎麼把字元串轉換為數字
具體方法如下:
將字元的數字轉成數字,比如'0'轉成0可以直接用加法來實現;
例如:將pony表中的d
進行排序,可d的定義為varchar,可以這樣解決;
select
*
from
pony
order
by
(d+0);
在進行ifnull處理時,比如
ifnull(a/b,'0')
這樣就會導致
a/b成了字元串,因此需要把'0'改成0,即可解決此困擾;
比較數字和varchar時,比如a=11,b="11ddddd";
則
select
11="11ddddd"相等;
若絕對比較可以這樣:
select
binary
11
=binary
"11ddddd";
字元集轉換
:
CONVERT(xxx
USING
gb2312);
類型轉換和SQL
Server一樣,就是類型參數有點點不同
:
CAST(xxx
AS
類型),CONVERT(xxx,類型);
類型必須用下列的類型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。
② sqlServer怎麼把字元串'106,107'轉換成兩個數字106,107
答: sqlserver 封裝成標值函數即可
邏輯代碼:
DECLARE@indexint=1,@charindexint
DECLARE@Textvarchar(100)='106,107,109'
set@charindex=CHARINDEX(',',@Text)
WHILE(@charindex>0)
begin
selectSUBSTRING(@Text,@index,@charindex-@index)
set@index=@charindex+1
set@charindex=CHARINDEX(',',@Text,@index)
if(@charindex=0)selectSUBSTRING(@Text,@index,len(@Text))
end
希望能幫到你!
如有問題 可以追問,我當及時回答!
③ sql字元串轉化成數字
sqlserver:
select replace(ltrim(rtrim(phone)),' ','') as phone
from table group by replace(ltrim(rtrim(phone)),' ','')
④ sql server中的怎麼把數值型轉換為字元串
有兩種。
1.轉換(int,欄位名)
例如:選擇convert(int,'3')
選擇cast('3'作為int)
一般來說,沒有必要將字元串轉換為數字類型,如果你需要比較兩個欄位是相等的,但為字元串類型欄位,類型,用「=」來比較這兩個值是相等的,SQLSERVER將自動將字元串轉換為一個數字,然後比較。
(4)sqlserver轉數字擴展閱讀:
注意事項:
這兩個函數都執行強制轉換,但是語法不同。據說有一些不同的轉換,但我更習慣於使用轉換函數,它更像一個函數的語法一方面,可以指定的格式轉換,將時間和價值轉換為一個字元串。
對於數據類型的確切值,轉換後的字元串是我們存儲的值。如:
聲明@iintset@i=123456789print'test:'+轉換(varchar(20),@i)
輸出是:test:123456789
對於具有近似值的數據類型,情況就不那麼簡單了。
聲明@ifloatset@i=123456789print'test:'+轉換(varchar(20),@i):test:1.23457e+008
⑤ sqlserver 怎麼將字元串1-3,5-8轉換成1,2,3,5,6,7,8
cast(欄位名 as int) 例如:select cast('3' as int)
其實,一般情況下沒有必要把字元串轉換為數字類型
假如需要比較兩個欄位是否相等,但是一個欄位為字元串類型,一個為數字類型,用「=」比較兩個值是否相等時,SQL SERVER會自動把字元串轉換為數字再比較的
⑥ sqlserver2008 布爾類型強制轉換數字類型
--資料庫默認布爾類型是bit類型bit0或者1應可支持轉換數字類型
--使用CAST:CAST(expressionASdata_type)
--使用CONVERT:CONVERT(data_type[(length)],expression[,style])
selectconvert(int,欄位)或cast(欄位asint)
希望能幫到你!
以前回答案例,可參考下如:
參考:http://..com/question/586478323
⑦ SQL中怎麼取出字元串中某兩個字元,並轉換為數字
select
*
from
tablename
where
欄位名
in
('aa')
這個就是用到了in關鍵字,同樣的還有not
in關鍵字查詢的便是不包含某字元串的結果。
如果需要判斷是否在,如果在(或者不在)需要返回值的話,用is
null關鍵字加一個判斷,判斷一下就可以了。
⑧ sqlserver時間轉毫秒值,就是一串數字的那種。
???
時間戳格式?
SELECTCAST('2014-01-01'ASTIMESTAMP)
要這樣的?
⑨ SQLSERVER數據轉換問題
Test_OldTable是包含19990101等nvarchar數據類型的表
Test_NewTable是包含DateTime數據類型的表
sql語句:
INSERT INTO Test_NewTable(NewDate)
SELECT CAST(OldDate AS DateTime)
FROM Test_OldTable
在查詢分析器中執行得到的結果是正確的。其他方法也可以的。
⑩ sqlserver存儲過程中 如何把表變數轉換成數值
直接將表名也改為varchar(50) 就行了
要不你就用預執行
if exists(select * from sysobjects where name='proc_select')
drop proc proc_select
go
create proc proc_select
@table varchar(50)
as
declare @sql varchar(8000)
set @sql='select * from '+@table
exec(@sql)
go
exec proc_select 'Types'