我收到错误“子查询返回超过1的值。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。“ [英] i am getting error "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression."
本文介绍了我收到错误“子查询返回超过1的值。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。“的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的查询是
my query is
@name_of_inst varchar(150),
@signatory_mous varchar(150),
@draft_mous varbinary(MAX),
@reg_no char(12)
AS
DECLARE @inserr1 as int
declare @count as int
set @count = 1
begin transaction OT
if exists(select srno from mous_info where reg_no = @reg_no)
set @count =(select srno from mous_info where reg_no = @reg_no)+1
insert into mous_info(reg_no,name_of_inst,signatory_mous,is_mous_ready,srno,draft_mous)
values(@reg_no,@name_of_inst,@signatory_mous,'True',@count,@draft_mous)
select @inserr1=@@ERROR
if @inserr1=0
begin
commit transaction OT
return 0
end
else
begin
rollback transaction OT
return 1
end
解决方案
设置@count =(从mous_info中选择srno,其中reg_no = @reg_no)+1
此查询返回多个值。
使用top限制为第一个值,例如
set @ count =(从mous_info中选择top srno,其中reg_no = @reg_no)+1
来自你的代码
from ur code
set @count =(select srno from mous_info where reg_no = @reg_no)+1
确保'从mous_info中选择srno,其中reg_no = @reg_no'返回单个值
如果查询返回多个行,你需要纠正它。
祝你好运;-)
这段代码可以用来试试
make sure 'select srno from mous_info where reg_no = @reg_no' returns single value
if the query returns more than one rows ,u need to correct it.
good luck ;-)
this code may work try
set @count =(select MAX(srno) from mous_info where reg_no = @reg_no)+1
这篇关于我收到错误“子查询返回超过1的值。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。“的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文