SELECT     *
FROM         Cmp_Notice
WHERE     
CASE WHEN FirstName IS NOT NULL 
    THEN LastName like '%AA%' 
    ELSE FirstName like '%AA%' 
END
-----------
如以上查询语句执行出错
--------------------------------------
那正确的要怎么写
我要的是
当FirstName为null的时候LastName要包含AA,
当FirstName不为null的时候FirstName包含AA谢谢

解决方案 »

  1.   

    ???
    SELECT *
    FROM Cmp_Notice
    WHERE  (FirstName IS NOT NULL  and FirstName like '%AA%') or
     (FirstName IS NULL  and LastName like '%AA%') 
      

  2.   

    ????
    SELECT *
    FROM Cmp_Notice
    WHERE  (FirstName IS NOT NULL  and FirstName like '%AA%') 
    union all
    SELECT *
    FROM Cmp_Notice
    WHERE  (FirstName IS NULL  and LastName like '%AA%') 
      

  3.   

    SELECT *
    FROM Cmp_Notice
    WHERE  FirstName IS NOT NULL  and FirstName like '%AA%'
    union all
    SELECT *
    FROM Cmp_Notice where 
    FirstName IS NULL  and LastName like '%AA%' 
      

  4.   

    看起来好像是可以,
    但是这样Where条件不是很直观,有没有Case When的方法
    谢谢
      

  5.   

    select * from Cmp_Notice where 
    FirstName is null and LastName like '%AA%' or 
    FirstName is not null and FirstName like '%AA%'
      

  6.   

    不需要case when用or连接即可。
      

  7.   

    最好加个括号。以确保顺序。select * from Cmp_Notice where 
    (FirstName is null and LastName like '%AA%') or 
    (FirstName is not null and FirstName like '%AA%')