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
关键字)。
让我们来看看几个可能的场景:
通配符
- 示例:用户在提示中输入
%
。
- SQL 翻译:
Country LIKE '%'
- 结果:查询returns所有记录由于通配符
单值
- 示例:用户在提示中输入
UK
。
- SQL 翻译:
Country LIKE 'UK'
- 结果:查询returns所有
Country
列匹配值UK
的记录
多个值
- 示例:提示中的用户 selects
UK
和 AT
。
- SQL 翻译:
Country LIKE 'UK,AT'
- 结果:查询 returns no records 因为没有包含值
UK,AT
(字面意思)的记录 Country
栏目。
据我所知,您想要做的是允许用户 select 多个值或完全跳过 selection 和 return 所有值(您使用了 LIKE
关键字和 %
通配符的组合)。
但是,对于多个值,您需要改用 IN
关键字。在当前版本的 BusinessObjects 中(您使用的是 非常 的旧版本),可以将提示设为可选。
由于您没有此功能,唯一的选择是创建一个 Universe 条件,在其中围绕 @prompt
函数构建一个 CASE
,以确定用户是否输入了 %或 selected 多个值,然后相应地构造您的 WHERE
子句。
查看 this article 的示例,了解如何构建这样的条件。
我正在写一份报告,我希望最终用户能够通过多个术语(即英国、捷克)进行搜索
但是我的代码没有获取任何结果
like @variable('2. COUNTRY (UK, CZ, AT or use % for all)')
仅使用一个术语(即英国)时有效,但当用户尝试搜索多个值时无效。
我尝试在变量前使用不同的语句,但仍然没有结果。
这样的搜索可行吗?
我正在为 Business Objects 5 编写这篇文章
谢谢
马特
您正在尝试结合提示(我认为它是多值提示)执行通配符搜索(通过使用 LIKE
关键字)。
让我们来看看几个可能的场景:
通配符
- 示例:用户在提示中输入
%
。 - SQL 翻译:
Country LIKE '%'
- 结果:查询returns所有记录由于通配符
- 示例:用户在提示中输入
单值
- 示例:用户在提示中输入
UK
。 - SQL 翻译:
Country LIKE 'UK'
- 结果:查询returns所有
Country
列匹配值UK
的记录
- 示例:用户在提示中输入
多个值
- 示例:提示中的用户 selects
UK
和AT
。 - SQL 翻译:
Country LIKE 'UK,AT'
- 结果:查询 returns no records 因为没有包含值
UK,AT
(字面意思)的记录Country
栏目。
- 示例:提示中的用户 selects
据我所知,您想要做的是允许用户 select 多个值或完全跳过 selection 和 return 所有值(您使用了 LIKE
关键字和 %
通配符的组合)。
但是,对于多个值,您需要改用 IN
关键字。在当前版本的 BusinessObjects 中(您使用的是 非常 的旧版本),可以将提示设为可选。
由于您没有此功能,唯一的选择是创建一个 Universe 条件,在其中围绕 @prompt
函数构建一个 CASE
,以确定用户是否输入了 %或 selected 多个值,然后相应地构造您的 WHERE
子句。
查看 this article 的示例,了解如何构建这样的条件。