寫了個存儲過程,中間用到了類似這種寫法 其中'1,2,3'是從外面傳進來的參數,就這樣執行報錯:'1,2,3'轉換為int類型出錯,因為ID是int類型的 想了個比較笨的解決方法:思路-迴圈將傳進來的參數'1,2,3'分割並轉換為int然後存儲到臨時表,之後在In裡面Select ID這樣就不報錯了 ...
寫了個存儲過程,中間用到了類似這種寫法
Select * From User Where ID In('1,2,3')
其中'1,2,3'是從外面傳進來的參數,就這樣執行報錯:'1,2,3'轉換為int類型出錯,因為ID是int類型的
想了個比較笨的解決方法:思路-迴圈將傳進來的參數'1,2,3'分割並轉換為int然後存儲到臨時表,之後在In裡面Select ID這樣就不報錯了
Declare @ID Nvarchar(500); Set @ID='4,11064'; Declare @table_UserID Table ( ID Int ) While(CHARINDEX(',',@ID)<>0) Begin Insert Into @table_UserID(ID) Values(CONVERT(Int,Substring(@ID,1,CHARINDEX(',',@ID)-1))); Set @ID=STUFF(@ID,1,CHARINDEX(',',@ID),''); End Insert Into @table_UserID (ID) Values(CONVERT(Int,@ID)); Select * From @table_UserID
Select * From User Where ID In(Select ID From @table_User)
結果:
歡迎指正