你可以用 ALL : 将值与列表中或查询返回的每个值进行比较。前面必须有=,!=,>,<,<=,>=。可以后跟返回一个或多个值的任何表达式或子查询。
date <= ALL('29-05-2018', '30-05-2018', '31-05-2018');
是否可以在子查询中对所有操作员的日期进行硬编码? 是的,有可能:
SELECT *
FROM tab_name
WHERE date <= ALL (SELECT some_date_column
FROM tab_name_2
WHERE ...);
<=>
SELECT *
FROM tab_name
WHERE date <= (SELECT MIN(some_date_column)
FROM tab_name_2
WHERE ...);
我桌上没有这些日期。我只想找出从今天到(今天+30天)的日期
SELECT *
FROM table_name
WHERE date BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE) + 30; -- Oracle
2条答案
按热度按时间uplii1fm1#
最严格的日期(即最早的日期)将决定过滤,因为任何大于此日期的日期限制较少。所以,除了使用
ALL
会是使用LEAST
:编辑(gordon):
在oracle中,这将是:
jv4diomz2#
你可以用
ALL
:将值与列表中或查询返回的每个值进行比较。前面必须有=,!=,>,<,<=,>=。可以后跟返回一个或多个值的任何表达式或子查询。
是否可以在子查询中对所有操作员的日期进行硬编码?
是的,有可能:
我桌上没有这些日期。我只想找出从今天到(今天+30天)的日期