34,590
社区成员
发帖
与我相关
我的任务
分享
declare @userid varchar(2000),
@sqlstr varchar(4000)
set @userid='101,102,103,104,......199'
set @sqlstr='select * from 表a where 字段a in ('+@userid+')'
CREATE TABLE #T1
(
userid INT
)
SET @userid=REPLACE(@userid,',',' UNION ALL SELECT ')
EXEC ('INSERT INTO #T1 SELECT ' + @userid)
SET @sqlstr=' select * from 表a where 字段a in (
SELECT userid
FROM #T1
)'
declare @table table (id int,col varchar(1))
insert into @table
select 101,'a' union all
select 201,'b' union all
select 301,'c' union all
select 409,'d'
declare @userid varchar(2000),
@sqlstr varchar(4000)
set @userid='201,102,301,104,199'
SELECT * FROM @table
WHERE CHARINDEX(','+CAST(id AS VARCHAR(4))+',',','+@userid+',')>0
/*
id col
----------- ----
201 b
301 c
*/
如果你的第二种,像你这么写的话,我看就用第一种算了
如果改成JOIN 的形式,我看还有的一比
SET @sqlstr=' select a.* from 表a a,#t1 b where a.字段a=b.userid'