Select语句中的Teradata更新表

抱歉,标题不清楚。基本上,我试图从多个表中选择某些记录,然后为返回的记录更新某个列值。

T-SQL实施

    UPDATE 

CUSTOMERS

SET

LIKES_US = 'Y'

FROM

RESTAURANT REST INNER JOIN CUSTOMERS CUST ON REST.LINK_ID = CUST.LINK_ID

WHERE

REST.REST_TYPE = 'Diner' AND CUST.LIKES_US IS NULL

甲骨文

    UPDATE 

(SELECT CUST.LIKES_US

FROM CUSTOMERS CUST INNER JOIN RESTAURANT REST ON CUST.LINK_ID=REST.LINK_ID

WHERE REST.REST_TYPE = 'Diner' AND CUST.LIKES_US IS NULL) NEW_CUST

SET

NEW_CUST.LIKES_US = 'Y';

我尝试在Teradata中执行与在Oracle中相同的操作,但是出现以下错误:

Executed as Single statement.  Failed [3707 : 42000] Syntax error, expected something like a name or a Unicode delimited identifier or an 'UDFCALLNAME' keyword between the 'UPDATE' keyword and '('. 

Elapsed time = 00:00:00.003

STATEMENT 1: Unknown failed.

我在网上寻找解决方案,但没有运气。

回答:

您是否使用Teradata尝试了以下语法:

UPDATE CUSTOMERS C1

FROM (SELECT C2.LINK_ID

FROM CUSTOMERS C2

INNER JOIN RESTAURANTS R2

ON C2.LINK_ID = R2.LINK_ID

WHERE R2.REST_TYPE = 'DINER'

AND C2.LIKES_US IS NULL) D1

SET LIKES_US = 'Y'

WHERE C1.LINK_ID = C2.LINK_ID

以上是 Select语句中的Teradata更新表 的全部内容, 来源链接: utcz.com/qa/407850.html

回到顶部