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,'')


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM