-1
我想排除那些有UserID
作爲NULL的記錄,只有至少有一個記錄中有一個值。SQL Server根據特定條件進行選擇
IF EXISTS (SELECT * FROM @MySavedSearches WHERE UserID IS NOT NULL)
SELECT SSM.*
FROM XYZTABLE SSM
JOIN @MySavedSearches MySearches ON SSM.UniqueID = MySearches.UniqueID AND MySearches.UserID IS NOT NULL
ELSE
SELECT SSM.*
FROM XYZTABLE SSM
JOIN @MySavedSearches MySearches ON SSM.UniqueID = MySearches.UniqueID
以上查詢我能夠得到所需的結果,但不知何故,我覺得它不是正確的方式。
你可以把它們都放在一個查詢,而無需的加入'和'部分通過使用WHERE子句。例如WHERE CASE WHEN EXISTS(SELECT 1 FROM @MySavedSearches WHERE UserID IS NOT NULL)THEN MySearches.UserID ELSE 1 END IS NOT NULL'。這只是說,「如果它存在,它不應該是空的,如果它不存在,抓住一切。」要想找到「正確」的方式,只需測試不同的方法,並找出哪些方法執行得最快,我想。 – ZLK
你的問題已解決? –
無論我在問題發佈的代碼是否正常工作。我只想知道其他更好的選擇。 – Raghuveer