是不是@GongXuJH的值类型不能用nvarchar那么集合的类型又是什么呢?

解决方案 »

  1.   

    用:
    CREATE PROCEDURE dbo.Pro内返报表_工序选择 (@GongXuJH nvarchar(100))
    AS 
    exec('
    SELECT dbo.质量统计.责任人, dbo.质量统计.责任工序, dbo.质量统计.罚款, 
          dbo.质量统计.纸样检验, dbo.质量统计.总检
    FROM dbo.质量统计 
    WHERE (dbo.质量统计.责任工序 in  ('+@GongXuJH+'))'
    )
    GO
      

  2.   

    CREATE PROCEDURE dbo.Pro内返报表_工序选择 (@GongXuJH nvarchar(100))
    AS 
    SELECT dbo.质量统计.责任人, dbo.质量统计.责任工序, dbo.质量统计.罚款, 
          dbo.质量统计.纸样检验, dbo.质量统计.总检
    FROM dbo.质量统计 
    WHERE Charindex(','''+dbo.质量统计.责任工序+''',',','+@GongXuJH+',')>0
    GO
      

  3.   

    或:
    CREATE PROCEDURE dbo.Pro内返报表_工序选择 (@GongXuJH nvarchar(100))
    AS 
    SELECT dbo.质量统计.责任人, dbo.质量统计.责任工序, dbo.质量统计.罚款, 
          dbo.质量统计.纸样检验, dbo.质量统计.总检
    FROM dbo.质量统计 
    WHERE charindex(','+dbo.质量统计.责任工序+',',','+@GongXuJH+',')>0
      

  4.   

    我感觉这样不认,因为单引号和逗号被解释为@GongXuJH变量的元素,而没有了SQL意义