【发布时间】:2010-12-23 10:12:02
【问题描述】:
我有一个带有许多参数的存储过程。我想编写我的查询,以便它与某些表连接,但前提是特定参数具有值。举个例子:我有一个 Person 表。还有一个包含人员地址的地址表和一个包含人员组的组表。两者都是与 Person 表的一对多关系。我的存储过程有一个@AddressID 参数和一个@GroupID 参数。
查询总是只返回 Person 表中的字段。如果两个参数都没有值,则查询应返回 Person 表中的所有记录。如果提供了@AddressID 参数,那么它应该只返回在地址表中具有匹配记录的记录并忽略组表。如果提供了 @GroupID 参数,那么它应该只返回在 Groups 表中具有匹配记录的记录,并忽略 Addresses 表。如果提供了两个参数,那么它应该只显示在两个表中都有匹配记录的记录。有意义吗?
有没有我想念的简单方法来做到这一点?
谢谢, 科里
【问题讨论】:
-
感谢您的提问。其他人没有。例如,这在使用 LEFT JOIN 时非常有用。