gpt4 book ai didi

sql - 如何将表别名传递给 SQL 中的子子查询?

转载 作者:行者123 更新时间:2023-12-04 14:26:15 24 4
gpt4 key购买 nike

我一直在为 SQL 苦苦挣扎有一段时间了。我必须构建一个查询以从表中返回第二高的 id。听起来很简单,尤其是如果您找到了 that link .

但我有一个更复杂的查询:

SELECT 
p.column1,
p.column2,
p.column3,
p.column4,
(
SELECT
p.column1
FROM
p_table p
WHERE
p.column2 = (
SELECT
id
FROM (
SELECT
id,
RANK() OVER (ORDER BY id DESC) rank_id
FROM
other_table
WHERE
field = p.column3
)
WHERE
rank_id = 2
)
) AS sth
FROM ...

甲骨文说 ORA-00904: Unknown identifierp.column3 .
我明白它为什么这么说 - 它无法识别 p作为表名别名。

是否可以将其传递给嵌套查询?

最佳答案

您不能将查询中的列传递给嵌套查询的嵌套查询。

我认为这可以做同样的工作:

选择
p.column1,
p.column2,
p.column3,
p.column4,
(
选择
p.column1

p_table p
在哪里
(p.column2, 2) = (SELECT id,
RANK() OVER (ORDER BY id DESC) rank_id

其他_表
在哪里
字段 = p.column3
)

) 作为……

关于sql - 如何将表别名传递给 SQL 中的子子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12515291/

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