在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语句中仍然是=值判断语句。
本文介绍如何在SQL查询的WHERE子句中利用DECODE函数实现条件的灵活控制。通过示例展示了当输入参数为NULL或具体值时,查询行为的变化,实现了对查询结果的有效筛选。
368

被折叠的 条评论
为什么被折叠?



