缺少父母的父母错误与父母相关

时间:2014-06-18 11:11:03

标签: sql oracle

我正在运行一个SQL查询,只有两个括号,但我仍然得到错误“缺少括号”。代码如下所示:

Update ALEKWE_CUSTOMER C
     set recently_purchased = CASE  WHEN EXISTS(SELECT * FROM ALEKWE_CUSTOMER_PRODUCT AS D
            WHERE C.customer_id=D.customer_id) 
            THEN 'Y' ELSE 'N' END;

2 个答案:

答案 0 :(得分:0)

如果这是针对sql-server的,那么这可能就是答案:

Update ALEKWE_CUSTOMER 
set recently_purchased = (CASE WHEN EXISTS(
SELECT * FROM ALEKWE_CUSTOMER_PRODUCT AS D WHERE customer_id=D.customer_id) THEN 'Y' 
ELSE 'N' END);

您还需要将整个CASE结构放在括号中 除此之外,您无法为将要更新的表使用别名。

答案 1 :(得分:0)

你不能在这个位置拥有别名C,你也不需要它:

Update ALEKWE_CUSTOMER 
     set recently_purchased = CASE  WHEN EXISTS(SELECT * FROM ALEKWE_CUSTOMER_PRODUCT AS D
            WHERE ALEKWE_CUSTOMER.customer_id=D.customer_id) 
            THEN 'Y' ELSE 'N' END;

你也不需要将案件置于挑剔中。

你需要:

Update ALEKWE_CUSTOMER 
     set recently_purchased = CASE  WHEN EXISTS(SELECT * FROM ALEKWE_CUSTOMER_PRODUCT AS D
            WHERE C.customer_id=D.customer_id) 
            THEN 'Y' ELSE 'N' END;
FROM ALEKWE_CUSTOMER C

您的别名

修改

我的修改后的语句在Microsoft SQL-Server上运行良好。
显然问题是Oracle SQL 特有的。
阅读完评论后,我将Oracle添加到您的代码中,因为您无处可去。