0

我在 Oracle 10g 中有一个要求:我需要使用in子句进行选择。

问题是我想在数据库中使用的字符串是逗号分隔值产品代码,就像4435D,4436E,5656F, 5670L在单个列中一样。

我想要的是'4435D','4436E','5656F', '5670L'我可以用作的东西

Select * from sub_products 
where product_code in ('4435D','4436E','5656F', '5670L');

我们如何实现这一目标?任何帮助,将不胜感激。

4

3 回答 3

0

您可以使用 CONTAINS 关键字(检查:SQL 中是否有“LIKE”和“IN”的组合?

WHERE CONTAINS(product_code,'4435D OR 4436E OR 5656F OR 5670L',1)>0
于 2013-07-10T07:49:48.643 回答
0

使用like怎么样?

Select * from sub_products 
where product_code like '%4435D%' or product_code like '%5656F%' or product_code like '%5670L%';
于 2013-07-10T07:32:07.320 回答
0

您可以使用分层查询来分隔字符串中的值。

with str as (
  select '4435D,4436E,5656F,5670L' s from dual)
select regexp_substr(s,'[^,]+',1,level) from str
connect by regexp_substr(s,'[^,]+',1,level) is not null;

输出:

4435D
4436E
5656F
5670L

您可以在查询中将其用作子查询。样品小提琴

于 2013-07-10T11:54:21.980 回答