如果提供了日期范围,则返回特定范围内表中的日志,否则返回日期位于时间戳中的表中的所有日志--oracle查询
如果提供了日期范围,则返回表中特定范围内的数据,否则返回表中日期位于时间戳中的所有数据--oracle查询这就是我对问题的理解 基于Scott的EMP表(其中包含hiredate列),我将选择特定日期范围内的值如果提供了日期范围,则返回特定范围内表中的日志,否则返回日期位于时间戳中的表中的所有日志--oracle查询,oracle,Oracle,如果提供了日期范围,则返回表中特定范围内的数据,否则返回表中日期位于时间戳中的所有数据--oracle查询这就是我对问题的理解 基于Scott的EMP表(其中包含hiredate列),我将选择特定日期范围内的值 SQL> alter session set nls_date_format = 'dd.mm.yyyy' 2 / Session altered. SQL> select ename, job, hiredate from emp order by hiredat
SQL> alter session set nls_date_format = 'dd.mm.yyyy'
2 /
Session altered.
SQL> select ename, job, hiredate from emp order by hiredate;
ENAME JOB HIREDATE
---------- --------- ----------
SMITH CLERK 17.12.1980
ALLEN SALESMAN 20.02.1981
WARD SALESMAN 22.02.1981
JONES MANAGER 02.04.1981
BLAKE MANAGER 01.05.1981 --> from here ...
CLARK MANAGER 09.06.1981
TURNER SALESMAN 08.09.1981
MARTIN SALESMAN 28.09.1981
KING PRESIDENT 17.11.1981 --> ... to here
JAMES CLERK 03.12.1981
FORD ANALYST 03.12.1981
MILLER CLERK 23.01.1982
SCOTT ANALYST 09.12.1982
ADAMS CLERK 12.01.1983
14 rows selected.
SQL>
查询使用两个参数:从1981年5月1日起的日期和从1981年11月17日起的日期。这是处理参数为空的可能性的标准方法。示例将在例如TOAD或SQL Developer中运行良好
select ename, job, hiredate
from emp
where (hiredate >= :par_date_from or :par_date_from is null)
and (hiredate <= :par_date_to or :par_date_to is null)
order by hiredate;
ENAME JOB HIREDATE
---------- --------- ----------
BLAKE MANAGER 01.05.1981
CLARK MANAGER 09.06.1981
TURNER SALESMAN 08.09.1981
MARTIN SALESMAN 28.09.1981
KING PRESIDENT 17.11.1981
如果两个参数都为NULL,则返回所有表行。那么您希望在这里看到什么?因此,这不是一个代码编写服务,即使它是,您如何期望somone在不知道所涉及的表或输入和所需输出的性质的情况下编写查询?