eug*_*neK 0 sql-server asp.net ado.net
我有很长的选择查询,我需要根据一些参数进行过滤,我试图通过使用部分动态TSQL来避免在单个存储过程中使用不同的存储过程或if语句...
我会避免长期选择只是为了清酒
select a
from b
where c=@c
or d=@d
Run Code Online (Sandbox Code Playgroud)
@c和@d是过滤器参数,只有一个可以同时过滤,但也可以禁用这两个过滤器.对于每个这些意味着param是禁用的0,所以我可以用where语句创建nvarchar ...
我如何在这里集成动态查询,以便'where'可以添加到普通查询中.我无法将所有查询添加为大nvarchar,因为其中有太多东西需要更改(即.何时,子查询,连接)
怎么样的:
SELECT a
FROM b
WHERE (@c IS NULL OR c = @c)
AND (@d IS NULL OR d = @d)
Run Code Online (Sandbox Code Playgroud)
如果您不使用过滤器,请将参数设置为,NULL并且条件应该短路.
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |