Sql 在Oracle中分离/组织字符串值
我对Oracle 10g有以下要求: 我需要在子句中选择使用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'); 我们如何做到这一点? 任何帮助都将不胜感激
问题是我想在数据库中使用的字符串是逗号分隔的值产品代码,如单个列中的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