sql提示子查询返回的值不止一个,求解如何修改,谢谢。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql提示子查询返回的值不止一个,求解如何修改,谢谢。相关的知识,希望对你有一定的参考价值。

select b.sblx as mc,sum(b.sl) as sl,zj=case when b.sblx!='液相制备色谱仪' and sum(b.sl)<=50 then ((select a.snsfbz from LHS_yqfxjcsfbz a where b.sblx=a.mc and a.fj='A')*sum(b.sl)) end from lhs_yqsj b where 1=1 group by b.sblx

就是select a.snsfbz from LHS_yqfxjcsfbz a where b.sblx=a.mc and a.fj='A'这句,对应每一行返回的不止一个数据,要确保子查询每一行只能返回1个数据 参考技术A

我的回答提交不了,你看我的截图上的回答吧

参考技术B LHS_yqfxjcsfbz表中符合b.sblx=a.mc and a.fj='A'条件的记录不止一条。

ORA-01427:单行子查询返回多个行

今天修改数据时候 有个需求将A表中的某一个字段赋值到B表中。AB中有一个关联ID,于是我写下了这样的SQL:

update a
   set a.class=
       (select  b.class
          from b
         where a.name= b.name)

给出了这样的提示:

产生原因:
set值 中的select 语句会返回多条,那么对症下药,限制返回一条就行了
调整后:

update a
   set a.class=
       (select  b.class
          from b
         where a.name= b.name and rownum <2)

问题解决,特此记录

以上是关于sql提示子查询返回的值不止一个,求解如何修改,谢谢。的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 表 无法更新和删除 子查询返回的值不止一个

sql 子查询返回的值不止一个怎么解决?

子查询返回的值不止一个.当子查询跟随在 =,!=,<,<=,>,>= 之后,或子查询用作

sql 问题子查询返回的值不止一个。

子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,不允许?

sql server触发器 子查询返回值不止一个 如何解决?