在 Where 子句中使用参数

Using parameters in a Where clause

我还没有找到完全符合我需要的现有讨论帖。我有一个报告工具,允许我要求用户输入(客户端)并将其作为参数传递给 SQL。

可能有多个客户端或单词全部。如果参数包含 'All' 我需要 select 所有记录。如果参数不包含'All'我只需要select参数中的记录

我发现了一些在参数只有一个值时有效的解决方案,但我的是一个列表并且需要使用 'in' 谓词。 (我认为)

有什么想法吗?

在不知道您的数据模型的情况下,应该执行类似以下操作:

SELECT *
FROM clients
WHERE ID IN (@clients) OR 'All' IN @clients

当您谈到 Caché 时,这意味着您甚至可以通过多种方式执行查询。还有一些方法可以实现它。我建议对 ALL 记录和选择使用不同的查询。您可以使用 IN or %INLIST 谓词。