空场上的标准

时间:2016-10-13 09:10:27

标签: sql postgresql date postgresql-9.3

考虑我有一个包含以下值的表计划。

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)
---------------------------------------------------------------
                   |                      |

但我也需要获取该行。

3 个答案:

答案 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)