-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