sql-server-2008 – 由于变量为NULL而避免IF ELSE

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – 由于变量为NULL而避免IF ELSE前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些代码,其中WHERE子句中使用的变量可以为空.因此,我必须使用IF ELSE查询数据以检查NULL.无论如何在一个查询中写入?
  1. DECLARE @OrderID UNIQUEIDENTIFIER
  2.  
  3. IF @OrderID IS NULL
  4. BEGIN
  5. SELECT *
  6. FROM Customers
  7. WHERE OrderID IS NULL
  8. END
  9. ELSE
  10. BEGIN
  11. SELECT *
  12. FROM Customers
  13. WHERE OrderID = @OrderID
  14. END

解决方法@H_301_6@
  1. SELECT *
  2. FROM Customers
  3. WHERE EXISTS (SELECT OrderID INTERSECT SELECT @OrderID)

会有效地做到这一点.

有关详细信息,请参阅Undocumented Query Plans: Equality Comparisons.

猜你在找的MsSQL相关文章