sql - SQL 使用 AND , OR 组合
问题描述
我正在使用oracle 10g。表格中有3个字段:
from date
To date
Customer
我有一张桌子,里面有customer
,delivery no
和date
。我想显示具有以下条件的报告:
- 用户可以给出-
from
然后to date
它会显示所有详细信息,而不管customer
名称如何 - 用户只能给出
customer
名称 - 然后它会根据customer
日期显示详细信息 - 用户可以给出
from date
,to date
然后customer
- 然后它会customer
在特定日期显示 with 的详细信息
我必须根据这些条件显示如何编写该查询的报告。
从表单中,我会将值传递给报告生成器
SELECT A.DEL_NO,
A.DEL_DATE,
A.CONS_ADDR
FROM ITBG_DELCHELLAN A
where A.oano is null
and A.DEL_date between :sdate and :edate
OR UPPER(A.cons_addr) like '%'||:adr||'%';
哪里sdate
是from date
,edate
是to date
,adr
是customer
。
解决方案
我想你想要:
SELECT A.DEL_NO,
A.DEL_DATE,
A.CONS_ADDR
FROM ITBG_DELCHELLAN A
WHERE A.oano is null
AND ( :sdate IS NULL OR :edate IS NULL OR A.DEL_date BETWEEN :sdate AND :edate )
AND ( :adr IS NULL OR UPPER(A.cons_addr) LIKE '%'||:adr||'%' )
-- Prevent returning everything if neither option is given.
AND ( ( :sdate IS NOT NULL AND :edate IS NOT NULL ) OR :adr IS NOT NULL )
推荐阅读
- jhipster - 管理员用户无权查看应用程序的设置和其他方面
- c# - C# 在 Unity 中将 Vector3 与 Vector2 混淆
- python - 如何使用python在json中构建所有列表和字典元素的动态映射
- angular - 我想在上次更改延迟后触发 onChange
- python-3.x - 图未在使用 python 的主成分分析中显示
- regex - 如何获得两个值
- php - $_SERVER['REQUEST_URI'] 不返回印地语字符
- python - 汤类选择器返回一个空列表
- javascript - 使用 Map 为异步瀑布生成函数
- c++ - 多线程时不断调用对象析构函数,但对象没有超出范围