【发布时间】:2010-05-26 11:05:24
【问题描述】:
我有两个变量 TO_DATE 和 FROM_DATE。我的表有两个字段DOJ 和DOL。我想选择DOJ < TO_DATE and DOL > FROM_DATE所在的所有记录。
如何为此编写 SQL 查询?
【问题讨论】:
我有两个变量 TO_DATE 和 FROM_DATE。我的表有两个字段DOJ 和DOL。我想选择DOJ < TO_DATE and DOL > FROM_DATE所在的所有记录。
如何为此编写 SQL 查询?
【问题讨论】:
您可能会在使用名为 to_date 的变量时遇到问题,因为这是一个内置的 Oracle 命令。您可以在使用变量的任何地方使用双引号来解决这个问题,如下所示:
SELECT * FROM my_table WHERE doj < "to_date" AND dol > from_date;
【讨论】:
不清楚你想做什么。
我想选择 DOJ FROM_DATE 的所有记录。
SELECT *
FROM MY_TABLE
WHERE DOJ < "TO_DATE" AND DOL > "FROM_DATE"; -- using double quotes in order to
-- avoid confusion with TO_DATE
-- built-in function with the same name.
-- Thanks to kicsit ;-)
我想选择 DOJ FROM_DATE 的所有记录。
SELECT *
FROM MY_TABLE
WHERE DOJ < "TO_DATE"
UNION -- UNION ALL substituted with UNION, thanks to kicsit user ;-)
SELECT *
FROM MY_TABLE
WHERE DOL > "FROM_DATE";
... 或 - 相同:
SELECT *
FROM MY_TABLE
WHERE DOJ < "TO_DATE" OR DOL > "FROM_DATE";
【讨论】: