当前位置: 首页 > 面试题库 >

Select语句中的Teradata更新表

谭吉星
2023-03-14
问题内容

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

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


 类似资料:
  • 问题内容: 我有两张桌子。表A和表B。 TableA包含一个varbinary(max)列-名为[BinaryA] TableB包含一个包含每个varbinary卷的列(名为“ Volume”,类型为“ Long”)。 为了选择我查询的所有卷 比,我想用它的体积更新tableB。 然后我写 我收到比 虽然我在运行时没有收到任何NULL 问题答案: 尝试使用此查询: 假设TableB和[VAULT]

  • 问题内容: 我有这些表和值: 我想使用表1中的值及其各自的ID更新表2中的所有值。 有没有办法通过简单的SQL查询来做到这一点? 问题答案: 运行选择以确保它是您想要的 更新 另外,请考虑使用,以便在需要时可以将其回滚,但请在满意时再进行确认。

  • 问题内容: 我有2个表格,Products和ShoppingCart,我想根据ShoppingCart中指定的产品名称和数量来更新和减少Products表中产品的“数量”。我怎样才能做到这一点? 表:产品字段:产品名称,产品数量 表:购物车字段:ProductName,ProductQty 访问数据库 问题答案: 您应该有一个产品ID。然而: 您还应该在字段和表名中删除空格。

  • 在SQL中,语句用于从数据库中的表中查询或检索数据。 返回存储在表中的数据,返回的结果称为结果集。 语法 这里,表达式是要从中选择数据的表的字段名称。使用以下语法选择表中可用的所有字段: 假设表有以下行记录 - EMP_ID EMP_NAME CITY PHONE_NO SALARY 1 Kristen Chicago 9737287378 150000 2 Russell Austin 9262

  • 主要内容:语法,实例,设置输出列的宽度,Schema 信息SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。 语法 SQLite 的 SELECT 语句的基本语法如下: 在这里,column1, column2...是表的字段,他们的值即是您要获取的。如果您想获取所有可用的字段,那么可以使用下面的语法: 实例 假设 COMPANY 表有以下记录: 下面是一个实例,使用 SELE

  • 主要内容:Oracle SELECT示例在本教程中,将学习如何使用Oracle SELECT语句从单个表中查询数据。 在Oracle中,表是由列和行组成。 例如,示例数据库中的表具有以下列:,,,和。表中这些列中也有对应的数据。 要从表的一个或多个列(,,,)中检索数据,请使用以下语法的语句: 在这个语句中: 首先,需要指定要查询数据的表名。 其次,指定想要返回数据的列。 如果需要返回多个列,则需要用逗号()将这些列分隔。 请注意,SE