我正在写一份报告,我希望最终用户能够通过多个术语搜索(即。英国,中国)
但是我的代码没有获取任何结果
like @variable('2. COUNTRY (UK, CZ, AT or use % for all)')
当只使用一个术语(即。(英国),但当用户试图搜索多个值时,则不会。
我已经尝试在变量之前使用不同的语句,但仍然没有得到结果。
这样的搜索可能吗?
我是为Business Objects 5写的
感谢马特您正在尝试执行通配符搜索(通过使用LIKE
关键字)与提示符(我认为它是一个多值提示符)相结合。
让我们看一些可能的场景:
-
通配符
- 示例:用户在提示符中输入
%
- SQL翻译:
Country LIKE '%'
- 结果:查询返回通配符 导致的所有记录
- 示例:用户在提示符中输入
-
单一
- 示例:用户在提示符中输入
UK
。 - SQL翻译:
Country LIKE 'UK'
- 结果:查询返回
Country
列与值UK
匹配的所有记录
- 示例:用户在提示符中输入
-
多个值
- 示例:用户在提示符中选择
UK
和AT
- SQL翻译:
Country LIKE 'UK,AT'
- 结果:查询返回没有记录,因为没有记录包含
Country
列的值UK,AT
(字面上)
- 示例:用户在提示符中选择
你要做的,据我所知,是允许用户选择多个值或完全跳过选择并返回所有值(为此你使用了LIKE
关键字和%
通配符的组合)。
但是,如果有多个值,则需要使用IN
关键字。在BusinessObjects的当前版本中(您使用的是非常旧的版本),可以将提示设置为可选的。
由于没有此功能,唯一的替代方法是创建一个宇宙条件,在该条件中围绕@prompt
函数构建CASE
,以确定用户是输入了%还是选择了多个值,然后相应地构建WHERE
子句。
请查看本文,了解如何构建这样一个条件的示例。