DECLARE @sin varchar
SET @sin = '201,202,209,305,1058'
SELECT * FROM TABLE1 WHERE ID IN (@sin) --错误
SELECT * FROM TABLE1 WHERE ID IN (201,202,209,305,1058) 怎样才能在 IN() 里面使用@sin?
SET @sin = '201,202,209,305,1058'
SELECT * FROM TABLE1 WHERE ID IN (@sin) --错误
SELECT * FROM TABLE1 WHERE ID IN (201,202,209,305,1058) 怎样才能在 IN() 里面使用@sin?
DECLARE @sin varchar(100)
SET @sin = '201'',''202'',''209'',''305'',''1058'
--SELECT * FROM TABLE1 WHERE ID IN (@sin) --错误
--用动态Sql语句
EXEC ('SELECT * FROM TABLE1 WHERE ID IN (''' + @sin + ''')')
SET @sin = '201,202,209,305,1058'
exec('SELECT * FROM TABLE1 WHERE ID IN (' + @sin + ')')
--或
select * from table1 where ','+rtrim(id)+',' like '%,'+@sin+',%')>0
--或
select * from table1 where patindex('%,'+rtrim(id)+',%' , ','+@sin+',')>0--动态语句的,或转为union再join的动态语句我就不写了