高分请各位高手帮帮忙,求一条更新SQL语句,谢谢了

[复制链接]
查看11 | 回复3 | 2008-11-4 09:33:25 | 显示全部楼层 |阅读模式
请各位高手帮帮忙,求一条SQL语句,谢谢了
求一条更新语句
有A,B 两张表,A表里有A1,A2 两个字段,B表里也有B1,B2两个字段(A1,B1都是名字,A2,B2都是数量)
当A表里的A2为空时,A2就更新为A1=B1的 B2的数量
A表
|
B表
_______________________________________________________
A 1 A 2|B 1 B 2
-------------------------------------------------------
张三
50
李四
30
小明
null
小明
20
A1 B1 是姓名 A2 B2 是分数
当A表上小明的分数为空时,就把A表上的分数更新为B表上的分数

回复

使用道具 举报

千问 | 2008-11-4 09:33:25 | 显示全部楼层
update A set A2=(select B2 from B where B1=A1) where A2 is null你的这个问题怎么写都可能会出现潜在错误的。中国人很多的,一个名字的人也很多。假如同时有两个人或更多的叫小明,小明 null 小明 20小明 30 小明 40小明 null 小明 30看到这些你是不是就囧了。计算机也囧了,计算机扫描半天就纳闷了,我是更新哪条数据呀,你是不是在搞我啊。注意一定要使用索引列进行编码。...
回复

使用道具 举报

千问 | 2008-11-4 09:33:25 | 显示全部楼层
Update A表 set A2 = (select B2 from B表 where A表.A1 = B表.B1) where A2 is null or A2 = ''注意的是:select B2 from B表 where A表.A1 = B表.B1这条语句只能查到一条记录,不然语句就有错。你可以用TOP 1 、Max 、Min等等...
回复

使用道具 举报

千问 | 2008-11-4 09:33:25 | 显示全部楼层
测试通过update A set A2=(select B2 from B where B1=A1) where (A2 is null) or (A2='')...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行