gpt4 book ai didi

oracle11g - 如何在oracle中嵌套查询的where子句中使用select参数?

转载 作者:行者123 更新时间:2023-12-02 23:06:29 25 4
gpt4 key购买 nike

假设我有树表

   h          y         t
------- ----- ------------
id id id name
------- ----- ------------
1 1 1 john
2 2 2 alex
3 8 6 maggie

我有一个这样的查询:

select t.*,(select  y.id from (select * h where h.id > t.id) y)  t

问题是我无法在内部查询中使用t.id。我想知道问题是什么以及解决方案是什么?我在 oracle 11g 中使用这个查询

最佳答案

您只能跨一级引用外部作用域中的表(或其别名)。因此 t 不在最内层的范围内,并且不被识别。

只有在单个 h 记录的 ID 高于每个 t 记录的情况下,您的查询才有效 - 这似乎不太可能;否则子查询将返回太多行。

这里不需要嵌套或任何子查询。无论如何,你的级别比你需要的要多。对于这个例子,你可以这样做:

select t.*, h.id from t join h on h.id > t.id

但是由于您的示例数据和查询不匹配,因此很难判断您真正需要什么。

关于oracle11g - 如何在oracle中嵌套查询的where子句中使用select参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30691039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com