SELECT *
FROM PO_HEADERS
WHERE (TO_CHAR(PURCHASEDATE,'YYYY/MM/DD') BETWEEN DATE1 AND DATE2);
当变量DATE1和DATE2有值时,则是上述语法所抓出的资料
当变量DATE1和DATE2为’’时,抓出TABLE PO_HEADERS的所有资料
这两个条件都存在时要怎样写这个语句
FROM PO_HEADERS
WHERE (TO_CHAR(PURCHASEDATE,'YYYY/MM/DD') BETWEEN DATE1 AND DATE2);
当变量DATE1和DATE2有值时,则是上述语法所抓出的资料
当变量DATE1和DATE2为’’时,抓出TABLE PO_HEADERS的所有资料
这两个条件都存在时要怎样写这个语句
解决方案 »
- 怎么导出表与序列?
- 从sqlserver转到oracle,头大啊,求推荐资料
- toad for oracle 中 想用调用一个存储过程 怎么弄啊,新手跪求
- 把一个表中的所有数据导入另一个表
- 分组SQL?
- Oracle 语句中“||”代表什么啊?
- 用oracle8.04能做临时表吗?急!!!
- 欲哭无泪---oracle9i的oracle management server启动不了,神阿,救救我!
- 基础问题(小问题)?
- Usable_file_MB出现负值,且rebalance失败,该怎么办?求教!
- 表之间的copy问题,十万火急
- 存储过程内变量长度过长问题!(还望高手指点,分虽少,我的一点心意!)
FROM PO_HEADERS
WHERE (TO_CHAR(PURCHASEDATE,'YYYY/MM/DD')
BETWEEN nlv(DATE1,to_date('1900-01-01','yyyy-mm-dd')
AND nvl(DATE2,to_date('9999','yyyy')));
FROM PO_HEADERS
WHERE (TO_CHAR(PURCHASEDATE,'YYYY/MM/DD') BETWEEN DATE1 AND DATE2)
or (DATE1 is null and DATE2 is null and 1=1)
如果date1和date2都是型如'YYYY/MM/DD'的字符串,并且PURCHASEDATE上有索引,那么用下面的语句更好
SELECT *
FROM PO_HEADERS
WHERE (PURCHASEDATE BETWEEN to_date(nvl(DATE1,'1999/1/1'),'YYYY/MM/DD') AND to_date(nvl(DATE2,'1999/1/1','YYYY/MM/DD') )
or (date1 is null and date2 is null);
select a.* from PO_HEADERS a,
(select count(*) as cou1 from po_headers where date1 is null and date2 is null] y where (to_char(a.purchasedate,'yyyy/mm/dd') between a.date1 and a.date2 and y.cou1=0)