从IBM DB2 700 心得

本文解析了一条包含子查询的SQL更新语句的功能与应用场景,解释了其在数据迁移及同步过程中的作用,并讨论了正确答案的选择依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
1.    Given the following UPDATE statement:
UPDATE address2 SET house_building=
(SELECT building FROM address1 
WHERE address2.id = address1.id) 
WHERE house_building IS NULL
Which of the following describes the result of the statement?
A.         The statement will succeed.
B.         The statement will fail because a subquery cannot exist in an UPDATE statement.
C.         The statement will succeed only if ADDRESS1.ID and ADDRESS2.ID are defined as primary keys.
D.         The statement will succeed if the data retrieved from the subquery does not have duplicate values for ADDRESS1.ID.
选A的人多半是蒙的,但是只对了一半,因为是要有条件的
选B的人概念有问题,再多看看书
选C的人已经入门,但是由于有only if  这个词,条件限制的太死,不是primary keys也可以执行成功,举个反例就可以驳倒
选D的人有三种:
1、蒙的,猜的
2、对sql极为了解,从语法上认为是对的
3、做过项目,在实际应用中碰到过这种问题。
恭喜选D的人,您做对了。
       现在具体说一下这个题,首先看到这个sql很多人觉得写的很奇怪。出题的外国老师一定在玩花样,想把学生绕到沟里。其实我要替IBM说句话,出这个题的人是很实际的,因为这个sql在我的工作中对我有很大帮助。
       要问这个sql能够用来做什么,其实很简单,就是有两张表,根据ID号,将address1表的building字段值更新的表address2的house_building字段。这个sql在我的实际工作中经常用到,特别是系统实施阶段的数据导入过程中,经常需要将一个表的数据通过这种方法更新到另一个表中。
       说了这么多,我的目的是说明,DB2认证考试不是简单的应试,他能购帮我们梳理、总结一下这几年的工作心得。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值