where 带条件的判断
id      mark      age       
 1         0               90 
 1         0               80 
 1         1               6 
 1         1               2 
 1         2               28 
 1         2               50   
 我想实现的是 
 当mark=0的时候,删除age> 3的计录 
 当mark=1的时候,删除age> 30的计录 
 当mark=2的时候,删除age> 80的计录 
 执行完SQL语句后 
 数据库应该是 
 id      mark      age 
 1         0               80 
 1         1               2 
 1         2               28   
 我自己写的是 
 delete   table   where    
 case 
             WHEN   mark   = '0 '   THEN   age>  '3 ' 
             WHEN   mark   = '2 '   THEN   age>  '30 ' 
             else   THEN   age>  '90 ' 
 end 
 可以不行,谁能帮   我学一个带条件判断的类似的语句啊   
------解决方案--------------------delete 表名 
 where (mark = '0 ' and age>  '3 ') or (mark = '2 ' and age>  '30 ') or (age>  '90 ')     
 --如果是数值型 
 delete 表名 
 where (mark =0 and age> 3) or (mark =2 and age> 30) or (age> 90)     
------解决方案--------------------delete from table  
 where age> case when mark=0 then 80 when mark=1 then 3 when mark=2 then 30 else age end 
 mark    age     case...end 后的值     是否删除   
 0        79               80          否 
 0        80               80          否 
 0        81               80          是 
 1         2                3          否 
 1         3                3          否 
 1         4                3          是 
 2        29               30          否 
 2        30               30          否 
 2        31               30          是
------解决方案--------------------declare @mark int 
 select @mark=case when 0 then  'age> 3 ' 
         case when 2 then  'age> 30 ' 
         else  'age> 90 ' 
       end  
  exec( 'delete table where '+@mark)