如何在商店程序中使用IF Else?

时间:2013-05-19 02:53:13

标签: sql sql-server sql-server-2008 stored-procedures

我正在尝试使用ID参数执行Select query,现在如果ID为空,那么我想要All Rows,否则只有包含此ID的行, 到目前为止,我已经创建了这个存储过程,

IF(@CustId = null)
  Begin
   Select * from tblCustomer
  End
Else
  Begin
   Select * from tblCustomer where custID=@custID
  End

当我使用ID执行此查询时,我得到结果但是当我通过时,我没有得到任何结果。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

Null的处理方式与其他值不同,您需要使用

IF (@CustId IS NULL)

您当前的IF(@CustId = null)代码将始终评估为False,因此无论您为@CustId传递的是什么,都会执行else案例。 This article 详细介绍了如何处理NULL值: