我已經嘗試了下面的查詢來檢查當前年份是否爲閏年。在設置變量值時處理NULL值
Declare @leapyearstrt int = 0
--1st query
select @leapyearstrt = ISNULL(ISLEAPYEAR,0)
FROM [dbo].[TimeElement]
WHERE CurrentDate = getdate()
--2nd query
SET @leapyearstrt = (SELECT isnull(ISLEAPYEAR,0)
FROM [dbo].[TimeElement]
WHERE CurrentDate = getdate()
)
如果數據不存在於表中給定日期,第一次查詢返回@leapyearstrt
爲0
,但第二個查詢返回@leapyearstrt
作爲NULL
。
爲什麼發生?如果數據在表中不存在,如何在SET
語句中分配0
值?
(PS:我已經使用SET
分配,因爲select
可能返回多行的值)
沒有記錄沒有價值 – lad2025
如果沒有值,則參數必須返回默認值分配給它。是嗎? – bmsqldev
[SET與SELECT分配變量時可能出現重複?](http://stackoverflow.com/questions/3945361/set-versus-select-when-assigning-variables) – lad2025