GBASE南大通用GBase数据库 以统一值进行更新

GBase数据库以统一值进行更新

关键字 SET 之后的每一赋值都为列指定新的值。那个值统一地应用于您更新的每一行。在 前面部分中的示例中,新的值为常量,但您可指定任意表达式,包括基于列值本身的表达 式。假设制造商 HRO 已将所有价格提高百分之五,且您必须更新 stock 表来反映此提价。 请使用下列语句:

UPDATE stock SET

unit_price = unit_price * 1.05 

WHERE manu_code = 'HRO'; 

您还可使用子查询作为指定的值的一部分。当使用子查询作为表达式的元素时,它必须恰 好返回一个值(一列和一行)。对于任何库存编号,或许您决定必须收取比那种产品的任 何制造商都更高的价格。您需要更新所有未装运的订单的价格。下列示例中的 SELECT 语 句指定该标准: 

UPDATE items

SET total_price = quantity *

 (SELECT MAX (unit_price) FROM stock 

WHERE stock.stock_num = items.stock_num) 

WHERE items.order_num IN

 (SELECT order_num FROM orders

WHERE ship_date IS NULL);

第一个 SELECT 语句返回单个值:在 stock 表中,对于某个特定的产品的最高价格。第一 个 SELECT 语句是一个相关联的子查询,因为当来自items 的值出现在第一个 SELECT 语 句的 WHERE 子句中时,您必须为您更新的每一行都执行该查询。

第二个 SELECT 语句产生未装运的订单的订单编号的一个列表。它是一个执行一次的非相 关的子查询。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值