【发布时间】:2017-01-06 13:05:26
【问题描述】:
我必须在 SQL Server 2012 中运行查询才能从表中选择数据。有一个变量@status。如果此变量为空,则必须返回所有数据,否则如果值为
我对此有一个示例查询
SELECT *
FROM StatusTable
WHERE (Status = IIF(@status IS NULL, status, @status))
当@status 不为空时,此查询可以正常工作,但当它为空时,它只返回状态列不为空的行。
示例表:
| id | status | Data |
|----|--------|------|
| 1 | null | a |
| 2 | ok | b |
| 3 | fail | c |
| 4 | fail | d |
| 5 | null | e |
当@status 为“失败”时:
| id | status | Data |
|----|--------|------|
| 3 | fail | c |
| 4 | fail | d |
但是当@status 为空时,它返回:
| id | status | Data |
|----|--------|------|
| 2 | ok | b |
| 3 | fail | c |
| 4 | fail | d |
请帮忙,谢谢
PS:在 null 状态的情况下,我希望返回整个(样本)表
【问题讨论】:
标签: sql sql-server sql-server-2012