我正在运行一个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;
答案 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添加到您的代码中,因为您无处可去。