gpt4 book ai didi

sql - Oracle SQL - 使用WITH语句时无法更新

转载 作者:行者123 更新时间:2023-12-02 11:53:38 24 4
gpt4 key购买 nike

我正在尝试更新基于通过WITH语句创建的虚拟数据集的列。我已经尽可能简化了声明,以解决根本问题。使用WITH语句时,UPDATE似乎不起作用,但我不敢相信这是准确的。我收到的错误是

ORA-00928: missing SELECT keyword

这是我的 SQL 语句。

with TEMP1 as (
select NN_NAME
from SMB.ACCOUNTS
)

update SALES_PLAY_MATRIX_WORKING
set FY16_FOCUS = 'Y' where NN_NAME in ( select TEMP1.NN_NAME from TEMP1)

如果我将语句的第二部分转换为纯 SELECT,它会起作用...

with TEMP1 as (
select NN_NAME
from SMB.ACCOUNTS
)

(
select TEMP1.NN_NAME
from TEMP1)

最佳答案

在 Oracle 中,with 不仅仅出现在查询的开头。它可以位于任何select之前。所以:

update SALES_PLAY_MATRIX_WORKING
set FY16_FOCUS = 'Y'
where NN_NAME in (
with TEMP1 as (
select NN_NAME
from SMB.ACCOUNTS
)
select TEMP1.NN_NAME
from TEMP1
);

关于sql - Oracle SQL - 使用WITH语句时无法更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40261167/

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