我收到错误“子查询返回超过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."

查看:141
本文介绍了我收到错误“子查询返回超过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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆