【发布时间】:2012-03-12 00:46:04
【问题描述】:
我遇到了调用存储过程并传入一些变量的情况。在某些情况下,我会传入 null 并且我希望它返回所有内容。采取以下(年龄是一个整数列):
[Table]
[Name] | [Age]
Mike | 22
Fred | 18
Bob | 22
SELECT * FROM [table] WHERE [Age]=@AgeVar
现在如果我通过 22,我会得到 Mike 和 Bob。同样,通过 18 会得到 Fred。但是,如果我在传入 null/不设置 @AgeVar 时想要所有 3 行怎么办?这是我的一个非常简单的问题。
编辑:Sproc 非常复杂,我真的不想通过将所有部分加倍,但它们是以下答案之一的两倍。还有其他方法吗?
【问题讨论】:
-
如果您没有时间点击 Joe 的链接,指向他非常出色的文章,他证明使用动态 SQL 可能会比这种方法更好。
-
@DOK: 澄清一下,我不是这篇文章的作者。那篇文章是 Gail Shaw 写的,他在 SQL Server 方面比我聪明得多。
-
@Joe Stefanelli,我们都站在巨人的肩膀上,不是吗?
-
请停止在您的帖子上签名。
标签: sql sql-server tsql null integer