有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的value 换为A 中
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/10 17:32:09
有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的value 换为A 中对应的value
上面sql文字,sql2000报错为:子查询返回的值多于一个.当子查询跟随在 =、!=、= 之后,或子查询用作表达式时,这种情况是不允许的.
语句已终止.该怎么写?
上面sql文字,sql2000报错为:子查询返回的值多于一个.当子查询跟随在 =、!=、= 之后,或子查询用作表达式时,这种情况是不允许的.
语句已终止.该怎么写?
报错原因是,某个B表中的key值,在A表中存在多个;
举个例子:B表中某条记录的key值为20,而A表中key值为20的记录存在两个以上就会报这个错误;
解决方案:
如果不考虑sql所在业务环境,只从技术上绕过这个报错,可以在多条记录中选取最大的一条或者最小的一条;
update B b set b.value=(select max(a.value) from A a where b.key=a.key)
where exists(select 1 from A c where b.key=c.key)
结合业务考虑,一般系统中设计了字段名为key,是不允许重复的,请楼主检查一下是否存在错误数据或垃圾数据,如果业务要求不允许重复,则添加一个唯一约束,然后正常简单的update就可以执行成功了.
举个例子:B表中某条记录的key值为20,而A表中key值为20的记录存在两个以上就会报这个错误;
解决方案:
如果不考虑sql所在业务环境,只从技术上绕过这个报错,可以在多条记录中选取最大的一条或者最小的一条;
update B b set b.value=(select max(a.value) from A a where b.key=a.key)
where exists(select 1 from A c where b.key=c.key)
结合业务考虑,一般系统中设计了字段名为key,是不允许重复的,请楼主检查一下是否存在错误数据或垃圾数据,如果业务要求不允许重复,则添加一个唯一约束,然后正常简单的update就可以执行成功了.
有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的value 换为A 中
有两个MAP,KEY都相同,只有VALUE不同,要做到将VALUE不同的KEY找出来,
如何在EXCEL中,两个数据只取一个,比如,A和B同时存在一个公式里,有A时B为0,有B时A为0,A是一个公式的结果,B
把a/b-b/a写成两个因式的积,使得这两个因式的和为a/b+b/a,求这两个因式.
在区间(0 ,1)中任意选择两个数字a和b,则方程x=-2a-b/x有实根的概率为多少?
oracle数据库有A、B两列,B列字段中包含A列字段,现在想把B列字段中的A字段删除掉,该怎么写语句?
线性代数里,如果两个n阶矩阵A与B等价,那么A与B之间有什么样的联系,|A|和|B|有联系吗?
已知 集合A中有两个元素a,a平方,集合B中有两个元素1,b,且A=B,求 a和b
a、b、y中有两个锐角和一个钝角.
两个物体,A,b,A在B上,那A和B的压强之比?
有两个女生 A和B,A的外表比B长的好看,B的内心比A善良.如果是你是会选择哪个?
a、b是两个自然数(0包括在内)如果a+b=201,那么a和b的积有多少种情况?最大的积是多少?