1. 程式人生 > >SQL字串轉Int型別

SQL字串轉Int型別

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 條件語句