where子句中的case语句取决于变量值

时间:2014-09-29 09:50:35

标签: sql sql-server-2008

根据变量值,我的Where条件应该更改

如果@CustID <> 0那么

Where SomeColumn = @BillID

否则

Where SomeColumn In (@BillID,0)

我的查询:

Select * 
From SomeTable
Where SomeColumn = (Case When @CustID <> 0 Then @BillID Else /* What to Write Here */ End)

1 个答案:

答案 0 :(得分:1)

以下是您正在寻找的查询:

SELECT *
FROM SomeTable ST
WHERE (@CustID <> 0 AND ST.SomeColumn = @BillID)
    OR (@CustID = 0 AND ST.SomeColumn IN (@BillID, 0))

希望这会有所帮助。