gpt4 book ai didi

甲骨文——带子句 => 合并? (语法错误,)

转载 作者:行者123 更新时间:2023-12-04 00:16:48 26 4
gpt4 key购买 nike

我试图让 WITH 子句与 Oracle 中的合并一起使用,但由于某种原因我无法让它工作。我确定这是显而易见的事情,但我只是没有看到。

-- behold, the wonders of fake data
WITH X AS (
SELECT
'moo' AS COW,
'woof' AS CAT,
(SELECT MAX( DECIBELS ) FROM ANIMALIA WHERE COW = 'moo' ) AS DECIBELS
FROM DUAL )
MERGE INTO ANIMALIA D
USING X
WHEN MATCHED THEN
UPDATE SET D.COW = X.COW;

编辑

我实际上已经找到了如何解决这个问题(在我提交问题之前),但我认为因为我花了很长时间才找到答案,希望留下这个问题意味着下一个人会发现它不是那么简单很多时间。

我会在一天左右发布答案,但如果其他人在此期间发布答案,他们将获得积分。

最佳答案

除了在 SELECT 语句中,您不能在任何地方使用 WITH 子句。 See the documentation here. :

You can specify this clause in any top-level SELECT statement and in most types of subqueries.



因此,您可以执行以下操作(经过 11g 测试):
MERGE INTO animalia d
USING (WITH X AS
(SELECT 'moo' AS COW, 'woof' AS CAT,
(SELECT MAX( DECIBELS )
FROM ANIMALIA
WHERE COW = 'moo' ) AS DECIBELS
FROM DUAL )
SELECT * FROM X) q ON (1 = 1)
WHEN MATCHED THEN UPDATE SET d.cow = q.cow||' and more';

关于甲骨文——带子句 => 合并? (语法错误,),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6673806/

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