0
我需要從工作臺上得到的所有值不爲空:條件。如果在SQL Server中
- 如果datetime列「開始」不爲空到小於或等於現在。如果它爲空,我需要忽略開始驗證。
- 如果日期時間列'停止'不爲空並且大於或等於現在。如果是空我需要忽略停止驗證
所以我創造了這個請求
DECLARE @currDate DATETIME;
SET @currDate = GETDATE();
SELECT *
FROM table
WHERE
-- here I have some other conditions
AND @currDate >= (CASE WHEN table.validityStart IS NOT NULL THEN table.validityStart ELSE @currDate END)
AND @currDate <= (CASE WHEN table.validityStop IS NOT NULL THEN table.validityStop ELSE @currDate END)
所以,如果停止或開始爲null我比較當前日期時間與自身。我不認爲這是創建此請求的最佳方式。
那麼,有沒有可能避免「其中」部分驗證,如果值爲空,但不是它本身比較
是的,這是可能的解決方案,但這裏不是SARG。 – 2015-02-10 10:14:13
st mnmn的回答比較好。 (Upvoted!) – jarlh 2015-02-10 10:16:05