Exec('select * from tbname where dm in ( '+@DWList+' )')

select * from tbname where Charindex(','+dm+',',','+@DWList+',')>0

解决方案 »

  1.   

    select * from tbname where Charindex(','+dm+',',','+@DWList+',')>0
      

  2.   

    select * from tbname where Charindex(','+dm+',',','+@DWList+',')>0
      

  3.   

    这样写存储过程
    ALTER   PROC aa (@DWList NVARCHAR(400))
    AS
      EXEC('SELECT * FROM dbo.BOM_main WHERE 清单编号 IN ('+@DWList+')')这样调用过程
      EXEC aa '''001'',''002'',''003'''
      

  4.   

    1,Exec('select * from tbname where dm in ( '+@DWList+' )')不可行因为tbname为临时表
    我还需要处理。
    2,select * from tbname where Charindex(','+dm+',',','+@DWList+',')>0 好像也出不来。
      

  5.   


    DECLARE @DWList NVARCHAR(400)SET @DWList ='''001'',''002'',''003'''select @DWListEXEC('SELECT * FROM tbname WHERE dm IN ('+@DWList+')')
      

  6.   

    1,@DWList输入值为'''001'',''002'',''003''' 
    2,我需要从tb1中筛选数据insert到#tmp中然后对#tmp进行处理
      

  7.   


    DECLARE @Table1 TABLE (a NVARCHAR(4),b INT)INSERT INTO @Table1 VALUES('0001',1)
    INSERT INTO @Table1 VALUES('0002',2)
    INSERT INTO @Table1 VALUES('0003',3)DECLARE @DWList NVARCHAR(400)SET @DWList ='''0001'',''0002'''select * from @Table1 where  ','+@DWList+',' LIKE '%,'''+a+''',%'
      

  8.   

    DECLARE @Table1 TABLE (a NVARCHAR(4),b INT)
    INSERT INTO @Table1 VALUES('0001',1)
    INSERT INTO @Table1 VALUES('0002',2)
    INSERT INTO @Table1 VALUES('0003',3)DECLARE @DWList NVARCHAR(400)SET @DWList ='''0001'',''0002'''select * from @Table1 where  CHARINDEX(','''+a+''',',','+@DWList+',')>0
      

  9.   

    这个是对的
    DECLARE @DWList NVARCHAR(400)SET @DWList ='''001'',''002'',''003'''select @DWListEXEC('SELECT * FROM tbname WHERE dm IN ('+@DWList+')')
      

  10.   

    感谢各位!!!我已经解决
    我将#tmp改成在存储过程Create table #tmp
    然后EXEC('insert into #tmp...')