id    age  
1   0     90
1   0     80
1   1     6
1   1     2
1   2     28
1   2     50我想实现的是
当=0的时候,删除age>3的计录
当=1的时候,删除age>30的计录
当=2的时候,删除age>80的计录
执行完SQL语句后
数据库应该是
id    age
1   0     80
1   1     2
1   2     28我自己写的是
delete table where 
case
    WHEN  ='0' THEN age>'3'
    WHEN  ='2' THEN age>'30'
    else THEN age>'90'
end
可以不行,谁能帮 我学一个带条件判断的类似的语句啊

解决方案 »

  1.   

    不好意思,贴子的数据有点问题,这下面的数据是对地
    不好意思,贴子的数据有点问题,这下面的数据是对地
    不好意思,贴子的数据有点问题,这下面的数据是对地id    age  
    1   0     90
    1   0     80
    1   1     6
    1   1     2
    1   2     28
    1   2     50我想实现的是
    当=0的时候,删除age>80的计录
    当=1的时候,删除age>3的计录
    当=2的时候,删除age>30的计录
    执行完SQL语句后
    数据库应该是
    id    age
    1   0     80
    1   1     2
    1   2     28我自己写的是
    delete table where 
    case
        WHEN  ='0' THEN age>'80'
        WHEN  ='1' THEN age>'3'
        else THEN age>'30'
    end
    可以不行,谁能帮 我学一个带条件判断的类似的语句啊
      

  2.   

    delete 表名
    where ( ='0' and age>'3') or ( ='2' and age>'30') or (age>'90')--如果是数值型
    delete 表名
    where ( =0 and age>3) or ( =2 and age>30) or (age>90)
      

  3.   


    delete 表名
    where ( ='0' and age>'3') or ( ='1' and age>'30') or ( ='2' and age>'80')--如果是数值型
    delete 表名
    where ( =0 and age>3) or ( =1 and age>30) or ( =2 and age>80)
      

  4.   

    能不能有WHEN  THEN  来做啊,我主要是想知道,这样的条件判断该如何写
      

  5.   

    delete from table 
    where age>case when =0 then 80 when =1 then 3 when =2 then 30 else age end
      

  6.   

    delete from table 
    where age>case when =0 then 3 when =1 then 30 when =2 then 80 else age end
        age     case...end 后的值     是否删除0         2                3          否
    0         3                3          否
    0         4                3          是
    1        29               30          否
    1        30               30          否
    1        31               30          是
    2        79               80          否
    2        80               80          否
    2        81               80          是
      

  7.   

    delete from table 
    where age>case when =0 then 80 when =1 then 3 when =2 then 30 else age end
        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          是
      

  8.   

    declare @ int
    select @=case when 0 then 'age>3'
            case when 2 then 'age>30'
            else 'age>90'
          end 
     exec('delete table where'+@)