SQL字串轉Int型別
阿新 • • 發佈:2019-02-15
sql 一般情況下 都是可以隱式轉換的,不需要強轉。實在需要強轉轉換成int型別 可以用
convert(int,@str)
今天說的是另一種情況,
先看sql錯誤提示:
在將 varchar 值 '1,2,3' 轉換成資料型別 int 時失敗。
我們經常寫sql時會寫 select * from table where tableId in (1,2,3)這樣的
如果 1,2,3 是變數 或者是 ‘1,2,3’ 就會報上面的錯,
解決方法 動態執行sql語句 看方法:
declare @classid nvarchar(Max)
declare @sql nvarchar(Max)
declare @count int
set @classid=(select classid from Class)
set @sql=N'select @count=COUNT(sc.studentid) from StudentClass sc where classid in ('+@classid+')'
EXEC sp_executesql @sql,N'@count int output ',@count output
select @count
這樣就解決了問題 實現動態賦值 in 條件語句