Sql 带有参数LOV list的报表生成器select语句(带有多个条目)

Sql 带有参数LOV list的报表生成器select语句(带有多个条目),sql,oracle,parameters,Sql,Oracle,Parameters,我在oracle report builder(p_user)中创建了一个参数,它可以返回包含多个用户的列表 如何在select语句中使用此选项来选择正确的列表 我现在: 选择备注、用户、部门名称、部门id 摘自《离别笔记》 其中user=:p_user 现在,如果我选择1个用户,它将显示该用户的所有注释。当我选择多个用户时,它将不显示任何内容,因为“用户”与p_用户值不匹配 榜样 如果参数'p_user'=AR,则列表显示用户AR的所有内容 当参数'p_user'=AR,CZ,GD时,则不显示

我在oracle report builder(p_user)中创建了一个参数,它可以返回包含多个用户的列表

如何在select语句中使用此选项来选择正确的列表

我现在:

选择备注、用户、部门名称、部门id 摘自《离别笔记》 其中user=:p_user

现在,如果我选择1个用户,它将显示该用户的所有注释。当我选择多个用户时,它将不显示任何内容,因为“用户”与p_用户值不匹配

榜样

如果参数'p_user'=AR,则列表显示用户AR的所有内容
当参数'p_user'=AR,CZ,GD时,则不显示任何内容

您基本上希望在子句中参数化
,以便它将是(:p_user)
中的
用户,其中p_user是逗号分隔的列表。不幸的是,这是不可能的。但是,有很多方法可以解决这个问题,例如,请参见。
在您的情况下,它看起来是这样的:

select note,user,dep_name,dep_id 
  from departement_notes    
 WHERE ','||:p_user||',' LIKE '%,'||user||',%'
这样,您可以在字符串
、AR、CZ、GD、
中搜索字符串
,(用户名),
。逗号是必需的,这样您就不会匹配用户名
A
。请记住,这种方法不允许您在
user
列上使用索引,因此请小心使用。这里描述了另一种方法