我在 sqlanywhere11 中有一个具有以下结构的视图(日期为 dd-mm-yyyy 格式):
ID, VALID_FROM, VALID_UNTIL, SOME_VALUE
1, 01-01-2013, 01-02-2013 1
1, 02-02-2013, 01-03-2013 2
1, 02-03-2013, 01-04-2013 3
1, null, null 3
所以有多个id相同但日期不同的条目,日期也可能为空。现在我需要一个查询,仅选择当前日期介于VALID_FROM和VALID_UNTIL之间的条目,或者如果当前日期不在任何有效范围内,则选择具有空日期的条目。
我尝试了以下查询:
SELECT * FROM MYVIEW WHERE VALID_FROM IS NULL OR getdate() BETWEEN VALID_FROM AND VALID_UNTIL;
但这不起作用,因为如果有一个空行,它将始终被选中,即使有另一行具有有效的日期范围。
是否可以创建一个查找正确行的 SELECT 查询?