SQL oracle在业务对象报表中按多个词搜索



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

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

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

当只使用一个术语(即。(英国),但当用户试图搜索多个值时,则不会。

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

这样的搜索可能吗?

我是为Business Objects 5写的

感谢马特

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

让我们看一些可能的场景:

  1. 通配符

    • 示例:用户在提示符中输入%
    • SQL翻译:Country LIKE '%'
    • 结果:查询返回通配符
    • 导致的所有记录
  2. 单一

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

    • 示例:用户在提示符中选择UKAT
    • SQL翻译:Country LIKE 'UK,AT'
    • 结果:查询返回没有记录,因为没有记录包含Country列的值UK,AT(字面上)

你要做的,据我所知,是允许用户选择多个值或完全跳过选择并返回所有值(为此你使用了LIKE关键字和%通配符的组合)。

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

由于没有此功能,唯一的替代方法是创建一个宇宙条件,在该条件中围绕@prompt函数构建CASE,以确定用户是输入了%还是选择了多个值,然后相应地构建WHERE子句。

请查看本文,了解如何构建这样一个条件的示例。

最新更新