求助:根据不同的记录写不同的条件
本帖最后由 hwhtj 于 2013-12-03 17:31:49 编辑
有如下脚本
select id,xm, NVL(dm,'1111'), from tb where 1=1 and dm='001'
我想实现如下
当dm字段为空时,把后面的条件dm='001'去掉
当dm字段不为空时,加上条件dm='001'
求助,该如何写?
------解决方案--------------------select id,xm, NVL(dm,'1111'), from tb where NVL(dm,'001') ='001' ;
------解决方案--------------------select id,xm, NVL(dm,'1111'), from tb where DECODE(dm,NULL,'001',dm) ='001'
------解决方案--------------------楼上都可以,但是要建函数索引否则会慢
不追求效率,也可以如下
select id,xm, NVL(dm,'1111'), from tb where 1=1 and (dm='001' or dm is null)
------解决方案--------------------
赞一个