set @Post="'工程师'"把引号去掉
改成
set @post="工程师"

解决方案 »

  1.   

    set @Post="'工程师'"把引号去掉
    改成
    set @post='工程师'
      

  2.   

    copybigfacecat((我爱上了小姐)(陷入迷茫的猫))老大,不行
      

  3.   

    set @post as '工程师'
      

  4.   

    zhangcc99(zhangcc99) 老大不行。
      

  5.   

    有没有搞错,@Profession是一个变量,它的值为"'水工','水利'",你用这种方法生成语句再执行?能行得通才怪!select count(*) from dbo.ExpertPerson_table where Professinal in (@profession) and Judge_Post in (@post)等同于select count(*) from dbo.ExpertPerson_table where Professinal in (['水工','水利']) and Judge_Post in (['工程师'])而
    select count(*) from dbo.ExpertPerson_table where Professinal in ('水工','水利') and Judge_Post in ('工程师')
    等同于
    select count(*) from dbo.ExpertPerson_table where Professinal in ([水工],[水利]) and Judge_Post in ([工程师])完全是两码事
      

  6.   

    刚才回答急了,不知是不是这个意思?
    这次写笨笨的:declare @profession varchar(2000)
    declare @Post varchar(2000)
    declare @sql_s varchar(5000)
    set @Profession=''''+'水工'+','+''''+'水利'+''''
    set @Post=''''+'工程师'+''''
    set @Post='工程师'
    set @Post=''''+@Post+''''
    set @sql_s='select count(*) from dbo.ExpertPerson_table where Professinal in ('+@profession+') and Judge_Post in ('+@post+')'
    print @sql_s最后把print改成exec(@sql_s)