在Where子句中使用参数

时间:2017-06-28 14:30:00

标签: sql intersystems-cache

我还没有找到我需要的现有主题。我有一个报告工具,允许我向用户询问输入(客户端)并将其作为参数传递给SQL。

可能有多个客户端或单词All。如果参数包含'All',我需要选择所有记录。如果参数不包含'All',我只需要在参数中选择记录。

我找到了一些解决方案,如果参数只有一个值,但我的是一个列表,需要使用'in'谓词。 (我认为)

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

当您谈论Caché时,这意味着您甚至可以通过多种方式执行查询。还有一些方法可以实现它。我建议对... if (Left(ActivePrinter, 5) <> "Foxit") then 'regular printing, therefore execute your code else 'pdf-priner, therefore do something else (or nothing) end if ... 个记录和选择使用不同的查询。您可以使用IN%INLIST谓词。