【发布时间】:2015-09-16 08:06:47
【问题描述】:
我有一个存储过程,它接受五个参数,其中两个可以为空 - 我们将这些参数称为 A 和 B
我想做的是根据以下逻辑选择记录。
如果参数 A 为 NULL,则只返回匹配参数 B 的记录
我知道我可以做类似以下的事情
IF A IS NULL
BEGIN
SELECT * FROM TABLE WHERE Param=B
END
ELSE
BEGIN
SELECT * FROM TABLE WHERE Param=A
END
但是,SQL 查询比上面的要复杂得多,并且在 Proc 中会有大量复制,这是我想避免的事情
提前致谢
=================================
编辑 - 抱歉,我应该提到,在示例中,参数基于单独的列,例如
我的表由四列组成,其中两个单独的列映射到两个参数 - 下面的基本架构
身份证 人名 组ID 交货ID
在我的过程中,我想检索那些与 GroupID 匹配的记录然而在 GroupID 为空的情况下,我想返回那些匹配 DeliveryID 的记录
再次感谢
【问题讨论】:
标签: sql sql-server stored-procedures where-clause