sql oracle 在业务对象报告中按多个术语进行搜索

sql oracle search by multiple terms in business object report

我正在写一份报告,我希望最终用户能够通过多个术语(即英国、捷克)进行搜索

但是我的代码没有获取任何结果

 like @variable('2. COUNTRY (UK, CZ, AT or use % for all)')

仅使用一个术语(即英国)时有效,但当用户尝试搜索多个值时无效。

我尝试在变量前使用不同的语句,但仍然没有结果。

这样的搜索可行吗?

我正在为 Business Objects 5 编写这篇文章

谢谢

马特

您正在尝试结合提示(我认为它是多值提示)执行通配符搜索(通过使用 LIKE 关键字)。

让我们来看看几个可能的场景:

  1. 通配符

    • 示例:用户在提示中输入%
    • SQL 翻译:Country LIKE '%'
    • 结果:查询returns所有记录由于通配符
  2. 单值

    • 示例:用户在提示中输入UK
    • SQL 翻译:Country LIKE 'UK'
    • 结果:查询returns所有Country列匹配值UK
    • 的记录
  3. 多个值

    • 示例:提示中的用户 selects UKAT
    • SQL 翻译:Country LIKE 'UK,AT'
    • 结果:查询 returns no records 因为没有包含值 UK,AT(字面意思)的记录 Country栏目。

据我所知,您想要做的是允许用户 select 多个值或完全跳过 selection 和 return 所有值(您使用了 LIKE 关键字和 % 通配符的组合)。

但是,对于多个值,您需要改用 IN 关键字。在当前版本的 BusinessObjects 中(您使用的是 非常 的旧版本),可以将提示设为可选。

由于您没有此功能,唯一的选择是创建一个 Universe 条件,在其中围绕 @prompt 函数构建一个 CASE,以确定用户是否输入了 %或 selected 多个值,然后相应地构造您的 WHERE 子句。

查看 this article 的示例,了解如何构建这样的条件。