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