1

我有一个表 offer_detail 包含像这样的列

    Offer_ID           Customer_IDS
    EF123 100,200,300   
    EF124 300,700,800

我正在编写一个将customer id作为参数的查询。根据customer_id结果​​进行过滤。例如,如果输入customer_id是 100,我应该得到所有offer_id包含customer_idcsv 的 s。

我尝试使用regexp_like功能

select offer_id 
  from offer_detail 
 where regexp_like(customer_ids,':INPUT_PARAMETER')

如果参数是单个值,它可以正常工作,如果参数包含多个值,那么这不起作用。有什么解决办法吗?请帮助。我正在使用 Oracle 11g。

4

1 回答 1

1

您可以尝试使用正则表达式的 OR 运算符发送多个参数,如下所示

select offer_id 
from offer_detail 
where regexp_like(customer_ids,'700|800|200');

但这又是一个糟糕的设计。

于 2013-03-15T18:27:14.780 回答