SET @S1='SELECT no, name, gender FROM TInfo WHERE 1=1' 
IF(ISNULL(@par1,'')<>'') 
   SET @S1=@S1+' AND T_name LIKE '''+@par1+'%'''
IF(ISNULL(@par2,'')<>'') 
   SET @S1=@S1+' AND T_facu ='''+@par2+''''
EXEC(@S1)这是一个多条件查询存储过程,我想在@par1的前面也加一个%号,但是总是报单引号位置不对。哪个高手来帮我改一下?多谢!

解决方案 »

  1.   

    SET @S1='SELECT no, name, gender FROM TInfo WHERE 1=1' 
    IF(ISNULL(@par1,'') <>'') 
      SET @S1=@S1+' AND T_name LIKE '''%+@par1+%''' 
    IF(ISNULL(@par2,'') <>'') 
      SET @S1=@S1+' AND T_facu ='''+@par2+''''
      

  2.   


    --try:
    SET @S1='SELECT no, name, gender FROM TInfo WHERE 1=1' 
    IF(ISNULL(@par1,'') <>'') 
      SET @S1=@S1+' AND T_name LIKE ''%'+@par1+'%''' 
    IF(ISNULL(@par2,'') <>'') 
      SET @S1=@S1+' AND T_facu ='''+@par2+'''' 
    EXEC(@S1) 
      

  3.   

    SET @S1='SELECT no, name, gender FROM TInfo WHERE 1=1' 
    IF(ISNULL(@par1,'') <>'') 
      SET @S1=@S1+' AND T_name LIKE '''%+@par1+%'''' 
    IF(ISNULL(@par2,'') <>'') 
      SET @S1=@S1+' AND T_facu ='''+@par2+''''
      

  4.   

    其实最好还是你自己print出来看看
      

  5.   

    SET @S1='SELECT no, name, gender FROM TInfo WHERE 1=1' 
    IF(ISNULL(@par1,'') <>'') 
      SET @S1=@S1+' AND T_name LIKE ''%'+@par1+'%''' 
    IF(ISNULL(@par2,'') <>'') 
      SET @S1=@S1+' AND T_facu ='''+@par2+'''' 
      

  6.   


    消息 102,级别 15,状态 1,过程 TSe,第 8 行
    ''' 附近有语法错误。
    这个好像不行
      

  7.   

    从颜色看,sdhdy的应该没问题
    小F的%的颜色没变红,应该有问题.
    呵呵,没测试,路过.