01.数据
我们有一张 student 表,里面有学生的姓名和性别
select '小白'name,'0'sex from dual union all
select '小白'name,'1'sex from dual union all
select '小黑'name,'0'sex from dual union all
select '小黑'name,'1'sex from dual
我们发现,有两个学生叫 ‘小白’ ,有两个学生叫 ‘小黑’ ,但是性别不同,我们不想要数据为小白,且性别为 0 的数据,该怎么办?
02.解决
相信值看代码大家就知道我说的是什么意思了,我们做出限制,当 name 字段为’小白’ 时,做特殊限制,使 sex 字段为 0 的数据被排除调,如果不为 ‘小白’ ,则正常显示
where (sex<>'0' and 1=decode(name,'小白',1,0) or 0=decode(name,'小白',1,0))
当然,也可以这样限制
where (name<>'小白' or sex<>'0')
也可以这样限制
where (sex<>'0' and name='小白' or name<>'小白')