1

这个问题已经在 stackoverflow 和其他地方被问过:

  1. 是否可以进行递归 SQL 查询?
  2. Requêtes récursives avec les CTE - Example avec SQLServer 2003

但我想让这项工作用于 HP Quality-Center 10 中的报告查询。

有人对这些技术有深入了解吗?


一个简单的检查:

with t1 (parent, child) as 
(select * from all_lists t where t.al_father_id = '2') select * from t1

QC 报告“Quality Center 无法运行查询,因为它包含无效语句”。

而以下故意错字

select * from all_lists t wher t.al_father_id = '2'

QC 报告“SQL 查询 ... 运行失败,出现以下错误:SQL 失败 ... [Mercury][Oracle JDBC Driver][Oracle]ORA-00933: SQL 命令未正确结束。”

所以我想它回答了两个问题:

  1. 服务器是甲骨文(虽然它没有给出版本)
  2. with 不允许通过 QC 界面
4

1 回答 1

1

好的,我知道了:

select      SYS_CONNECT_BY_PATH (al_description,' :: ')
from        all_lists
start with  al_father_id = '2'
connect by  prior al_item_id = al_father_id

这是我的查询的解决方案。感谢 a_horse_with_a_name 的评论促使我进行更深入的搜索。

晶圆厂。

我仍然愿意接受改进或进一步旅行和交易技巧的评论 - 例如:我在哪里可以找到 CONNECT BY 相关函数(如 SYS_CONNECT_BY_PATH)的参考。我敢肯定它有一些我很想了解的朋友。

于 2010-11-29T22:59:34.243 回答