一个简单的T-SQL语句,怎么变成相对的PL/SQL语句?

AMX004 2006-04-21 10:10:19
表A
字段a

表B
字段a 字段c

T-SQL语句:
UPDATE A
SET A.a=B.a
FROM A,B
WHERE A.a=B.c

现在想变成相应的PL/SQL语句,苦于不太了解PL/SQL,老是出错,求助。
...全文
145 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobfang 2006-04-21
  • 打赏
  • 举报
回复
UPDATE A
SET A.a=(select B.a from B where B.c=A.a)
where exists(select 1 from b where b.c=a.a)
waterfirer 2006-04-21
  • 打赏
  • 举报
回复
UPDATE A
SET A.a=(select B.a from B where B.c=A.a)
tancx 2006-04-21
  • 打赏
  • 举报
回复
UPDATE A
SET A.a=(SELECT B.a FROM B WHERE A.a=B.c);
比较容易理解的,看看行不?
软侠 2006-04-21
  • 打赏
  • 举报
回复
bobfang(匆匆过客) 的做法才是正確的,其它幾位的代碼都是錯的,別忘了,在SQL Server中,UPDATE A
SET A.a=B.a
FROM A,B
WHERE A.a=B.c中的where A.a=B.c即是關聯賦值的條件也是修改條件,而樓上幾位除了bobfang(匆匆过客) 的代碼之外,其它幾位的都把修改條件給丟了,這就出現了一個邏輯錯誤,雖然語法沒錯,但最終修改結果可能(我是說可能,在某些數據情形下,他們的修改結果也可能是一樣的)並不是你所想要的。另外還有如下一種寫法也可:
update a set a.a=(select b.a from b where b.c=a.a) where a.a in (select b.c from b);

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧