【问题标题】:sql oracle search by multiple terms in business object reportsql oracle在业务对象报告中按多个词搜索
【发布时间】:2015-10-17 08:11:03
【问题描述】:

我正在撰写一份报告,希望最终用户能够按多个字词进行搜索(即 UK、CZ)

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

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

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

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

这样的搜索可能吗?

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

谢谢

马特

【问题讨论】:

    标签: sql oracle business-objects


    【解决方案1】:

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

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

    1. 通配符

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

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

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

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

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

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

    查看this article 了解如何构建此类条件的示例。

    【讨论】:

      猜你喜欢
      • 2013-07-07
      • 2017-11-04
      • 2016-03-11
      • 1970-01-01
      • 2018-03-17
      • 2018-12-06
      • 2015-07-31
      • 2018-01-08
      • 1970-01-01
      相关资源
      最近更新 更多