在where中使用decode函数达到要求。
select * from zjk_pos_supplier_order
where ((decode(:
code, NULL, 1, 0) = 1) or code = :
code)
and order_date >= :order_date;
以上语句如果
:
code变量赋值为null,则相当于语句
select * from zjk_pos_supplier_order
where
order_date >= :order_date;
当
:
code变量不为null时,则相当于
select * from zjk_pos_supplier_order
where code = :code
and order_date >= :order_date;
对于where语句后是否可以用case或decode语句,答案是可以的,但要保证where语句中仍然是=值判断语句。