sqlserver中top 1 赋值的问题

看代码

declare @iid int
select @iid=111
select top 1 @iid=isnull(IID,0) from YYGL_PCDMX where IID=0
print @iid

上面的情况,如果iid=0没有记录,则@iid会取111,为了避免这个问题

1、在查询前,初始化为0

2、查找完成后,再次判断

修改后,如下

例一

declare @iid int
select @iid=0
select top 1 @iid=isnull(IID,0) from YYGL_PCDMX where IID=0

select @iid=isnull(@iid,0)
print @iid

 

例二

select @zh=''
select top 1 @zh= ZH
from SBGL_ZHSZ
where ZH not in(select ZH from RYGL_PBRL where RQ=@rq_ord)
order by ZHXH asc
select @zh=ISNULL(@zh,'')

你可能感兴趣的:(sqlserver)