搜索多个价格范围

时间:2018-04-16 16:08:35

标签: tsql sql-server-2017

我们最近将旧的存储过程从动态SQL转换为直接SQL。它是一个搜索引擎,我们让用户输入值字符串。

因此,他们可能希望搜索多个订单号,以便他们输入

111,222-3,444-0

我们将该字符串处理为表值中的行,然后将该表连接到我们的主订单表以返回行。

问题在于他们有一个选择,所以在价格中搜索多个范围。因此,他们将选择Invoice Totals选项并输入

10-25,100-125,200-300

他们要求的是退回订单,发票总额在10美元到25美元之间,或者在100美元到125美元之间,或者在200美元到300美元之间。

我不知道如何处理这件事。当他们搜索字符串文本时,我们只需将列表解析为FORMSOF(我们传递给对FTI的CONTAINSTABLE调用的INFLECTIONAL语句。

任何来自

的建议
10-25,100-125,200-300

WHERE InvoiceTotal BETWEEN  10 AND  25
   OR InvoiceTotal BETWEEN 100 and 125
   OR InvoiceTotal BETWEEN 200 and 300

或者,在不使用动态SQL的情况下功能相似。

1 个答案:

答案 0 :(得分:1)

您可以结合使用交叉应用和sql server sting splitter功能,根据用户的标准过滤数据。以下示例演示了该概念:

email