小编Ser*_*hov的帖子

ORACLE (11.2.0.1.0) - 带有日期表达式的递归 CTE

以下问题的正确答案:

\n\n
    \n
  • 如果我没记错的话,这是一个在 11.2.0.3 或更高版本中修复的错误。(无论如何,11.2.0.1 不再受支持。11.2.0.4 是唯一仍受支持的 11.2 版本) \xe2\x80\x93 @a_horse_with_no_name
  • \n
  • Bug 编号为 11840579,已在 11.2.0.3 和 12.1.0.1\n\xe2\x80\x93 @a_horse_with_no_name 中修复
  • \n
\n\n

问题

\n\n

我有一张桌子

\n\n
CREATE TABLE test(\n  from_date date,\n  to_date date\n);\n\nINSERT INTO test(from_date,to_date)\n--VALUES(\'20171101\',\'20171115\');\nVALUES(TO_DATE(\'20171101\',\'YYYYMMDD\'),TO_DATE(\'20171115\',\'YYYYMMDD\'));\n
Run Code Online (Sandbox Code Playgroud)\n\n

Oracle 中的以下查询仅返回一行(预期 15 行)

\n\n
WITH dateCTE(from_date,to_date,d,i) AS(\n  SELECT from_date,to_date,from_date AS d,1 AS i\n  FROM test\n\n  UNION ALL\n\n  SELECT from_date,to_date,d+INTERVAL \'1\' DAY,i+1\n  FROM dateCTE\n  WHERE d<to_date\n)\nSELECT d,i\nFROM dateCTE\n
Run Code Online (Sandbox Code Playgroud)\n\n

SQL 小提琴 - http://sqlfiddle.com/#!4/36907/8

\n\n

为了测试我将条件更改为i<10

\n\n
WITH dateCTE(from_date,to_date,d,i) AS(\n  SELECT from_date,to_date,from_date AS …
Run Code Online (Sandbox Code Playgroud)

sql oracle common-table-expression

5
推荐指数
1
解决办法
984
查看次数

标签 统计

common-table-expression ×1

oracle ×1

sql ×1