多条件and搜索过程为什么不通
CREATE   PROC      dbo.JdjcSearch 
 @Wzsz_Cpmc1   varchar(200), 
 @Wzsz_Sjqy1   varchar(200) 
 AS   
 Declare   @Sql   nvarchar(1024) 
 Set   @Sql   =    '   SELECT   Col001,   Col002,   Col014      FROM   Jdjc      where   (Col001   is   not   null)       '     
 IF   @Wzsz_Cpmc1   is   not      null 
 begin 
 Set   @Sql   =   @Sql+ '      and       ' 
 Set   @Sql   =   @Sql   + '   Col002   LIKE       ' '% '+@Wzsz_Cpmc1+    '% ' ' ' 
 END   
 IF   @Wzsz_Sjqy1   is   not   null 
 begin 
 Set   @Sql   =   @Sql+ '      and       ' 
 Set   @Sql   =   @Sql   + '   Col014   LIKE       ' '% '+@Wzsz_Sjqy1+    '% ' ' ' 
 END   
 EXEC      sp_executeSql      @Sql   
 WITH   RECOMPILE 
 GO   
 以上两个参数 
 @Wzsz_Cpmc1   varchar(200), 
 @Wzsz_Sjqy1   varchar(200) 
 当满足一个结果为空,必须要两个条件都满足才能搜索出内容。为什么? 
------解决方案--------------------CREATE PROC  dbo.JdjcSearch 
 @Wzsz_Cpmc1 varchar(200), 
 @Wzsz_Sjqy1 varchar(200) 
 AS   
 Declare @Sql nvarchar(1024) 
 Set @Sql =  ' SELECT Col001, Col002, Col014  FROM Jdjc  where (Col001 is not null)   '     
 IF IsNull(@Wzsz_Cpmc1,  ' ') !=  ' '		--將 ' '的情況也加上 
 begin 
 Set @Sql = @Sql+ '  and   ' 
 Set @Sql = @Sql + ' Col002 LIKE   ' '% '+@Wzsz_Cpmc1+  '% ' ' ' 
 END   
 IF IsNull(@Wzsz_Sjqy1,  ' ') !=  ' ' 
 begin 
 Set @Sql = @Sql+ '  and   ' 
 Set @Sql = @Sql + ' Col014 LIKE   ' '% '+@Wzsz_Sjqy1+  '% ' ' ' 
 END   
 EXEC  sp_executeSql  @Sql   
 WITH RECOMPILE 
 GO   
 你傳入的時候,傳入一個空字符串就可以。