【发布时间】:2016-05-24 23:20:49
【问题描述】:
我创建了一个带有 2 个可选参数的存储过程 (spBalanceRange)。它们已设置为默认值,当我按位置每个参数仅传递 1 个值时, sp 工作正常。但是,我有一种情况,我试图按位置传递两个字符串,后跟一个通配符。我希望用户能够搜索以“C%”或“F%”开头的供应商名称。以下是 CREATE PROC 语句的要点:
CREATE PROC spBalanceRange
@VendorVar varchar(40) = '%',
@BalanceMin money = 1.0
...
这是我迄今为止尝试过的,但不起作用:
EXEC spBalanceRange '(C%|F%)', 200.00;
EXEC spBalanceRange 'C%|F%', 200.00;
有没有办法在按位置传递时使用通配符检查 2 个或更多字符串值?谢谢。
【问题讨论】:
-
总是只有第一个字母,你想比较吗?
-
是的,我只想和第一个字母比较;任何字符都可以跟在“C”或“F”之后,因此是“%”。
-
在这种情况下,您可以将 IN 子句与
LEFT()一起使用,正如我在回答中指出的那样。您需要进一步的帮助吗? -
我刚刚有了一个非常简单的想法。你可以看看我编辑的答案。
标签: sql sql-server stored-procedures optional-parameters