考虑我有一个包含以下值的表计划。
planName(VARCHAR2) | validFrom(timestamp) | validTo(timestamp)
---------------------------------------------------------------
planA | 20-10-2013 |
我应该选择哪个选择查询,其中的条件是' validTo'字段,以便获得该行,即使该值在“有效”中是空的
例如,如果我写的查询如下: -
select *
from plan
where validFrom > to_Date('20-10-2013', 'DD-MM,YYYY')
and validTo < to_Date('31-12-2029', 'DD-MM,YYYY')
并获得
等结果planName(VARCHAR2) | validFrom(timestamp) | validTo(timestamp)
---------------------------------------------------------------
| |
但我也需要获取该行。
答案 0 :(得分:5)
感谢每一个我采用这种方法,希望这也会支持其他人。
@WebService(targetNamespace = "http://yada/yada", endpointInterface = "com.ISomeWS", serviceName = "SomeWS")
public class SomeWS extends SpringBeanAutowiringSupport implements ISomeWS {
@Autowired ISpringService springService;
public WSImportResponse processXMLContent(SomeType xmlContent) throws Exception {
springService.say("Hello");
}
}
如果值为null,则COALESCE()将与下一个非空值进行比较。
COALESCE是NVL的替代方法。
答案 1 :(得分:1)
这将有效,
{{1}}
答案 2 :(得分:0)
您只需要在WHERE子句中添加ValidTo IS NULL
SELECT *
FROM plan
WHERE (validFrom > to_Date('20-10-2013', 'DD-MM,YYYY'))
AND (validTo < to_Date('31-12-2029', 'DD-MM,YYYY') OR validTo IS NULL)