Roh*_*Raj 1 sql sql-server sql-server-2012
我必须在SQL Server 2012中运行查询以从表中选择数据.有一个变量@status.如果此变量为null,则必须返回所有数据(如果为value)
我有一个示例查询
SELECT *
FROM StatusTable
WHERE (Status = IIF(@status IS NULL, status, @status))
Run Code Online (Sandbox Code Playgroud)
当此查询@status不为null时,此查询正常工作,但是当它为null时,它仅返回status列不为null的行.
样品表:
| id | status | Data |
|----|--------|------|
| 1 | null | a |
| 2 | ok | b |
| 3 | fail | c |
| 4 | fail | d |
| 5 | null | e |
Run Code Online (Sandbox Code Playgroud)
什么时候@status"失败":
| id | status | Data |
|----|--------|------|
| 3 | fail | c |
| 4 | fail | d |
Run Code Online (Sandbox Code Playgroud)
但是当@status为null时,它返回:
| id | status | Data |
|----|--------|------|
| 2 | ok | b |
| 3 | fail | c |
| 4 | fail | d |
Run Code Online (Sandbox Code Playgroud)
请帮助,谢谢
PS:如果状态为null,我希望返回整个(样本)表
用途or:
SELECT *
FROM StatusTable
WHERE (Status = @Status or @Status IS NULL);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
546 次 |
| 最近记录: |