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 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
可以不行,谁能帮 我学一个带条件判断的类似的语句啊
不好意思,贴子的数据有点问题,这下面的数据是对地
不好意思,贴子的数据有点问题,这下面的数据是对地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
可以不行,谁能帮 我学一个带条件判断的类似的语句啊
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)
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)
where age>case when =0 then 80 when =1 then 3 when =2 then 30 else age end
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 是
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 是
select @=case when 0 then 'age>3'
case when 2 then 'age>30'
else 'age>90'
end
exec('delete table where'+@)