Sql 在Oracle中分离/组织字符串值

Sql 在Oracle中分离/组织字符串值,sql,string,oracle,oracle10g,Sql,String,Oracle,Oracle10g,我对Oracle 10g有以下要求: 我需要在子句中选择使用 问题是我想在数据库中使用的字符串是逗号分隔的值产品代码,如单个列中的4435D、4436E、565656f、5670L 我想要的是像'4435D'、'4436E'、'5656F'、'5670L'这样的东西,我可以将其用作 Select * from sub_products where product_code in ('4435D','4436E','5656F', '5670L'); 我们如何做到这一点? 任何帮助都将不胜感激

我对Oracle 10g有以下要求: 我需要在子句中选择使用

问题是我想在数据库中使用的字符串是逗号分隔的值产品代码,如单个列中的
4435D、4436E、565656f、5670L

我想要的是像
'4435D'、'4436E'、'5656F'、'5670L'
这样的东西,我可以将其用作

Select * from sub_products 
where product_code in ('4435D','4436E','5656F', '5670L');
我们如何做到这一点? 任何帮助都将不胜感激。

使用like怎么样

Select * from sub_products 
where product_code like '%4435D%' or product_code like '%5656F%' or product_code like '%5670L%';

您可以使用CONTAINS关键字(选中此项:)


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

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

您可以将其用作查询中的子查询。示例

不,我知道那里会有什么数据,我只是硬编码供您参考。该列可以有1个值或4个值,以逗号分隔。首先,我必须让它们以正确的字符串格式在in子句中使用,对吗?我们怎么做?
4435D
4436E
5656F
5670L