我正在尝试编写一个配置单元查询,因此我需要使用基于日期的where子句来筛选记录。
WHERE date_key
BETWEEN date_sub(current_date, 4)
AND MINIMUM(date_sub(current_date, 1), to_date("2018-10-14"))
我们能做两个值的MINIMUM
吗?
如果您使用的是oracle,那么有一个名为"最小"的关键字,它将输出值中较小的值。例如:
WHERE date_key
BETWEEN date_sub(current_date, 4)
AND LEAST(date_sub(current_date, 1), to_date("2018-10-14"))
否则,您可以手工制作查询以比较以下两个值
WHERE date_key
BETWEEN date_sub(current_date, 4)
AND (CASE WHEN date_sub(current_date, 1)< to_date("2018-10-14") THEN
date_sub(current_date, 1)
ELSE to_date("2018-10-14")
END)
不用麻烦。只需写:
WHERE date_key >= date_sub(current_date, 4) AND
date_key <= date_sub(current_date, 1) AND
date_key <= to_date('2018-10-14')
如果某个值小于两个值中的最小值,则它小于每个值。