我在Oracle 10g中有要求:
我需要选择使用in
子句。
问题是我想在数据库中使用的字符串是逗号分隔的值,如单个列中的4435D,4436E,5656F, 5670L
产品代码。
我想要的是'4435D','4436E','5656F', '5670L'
,我可以用作
Select * from sub_products
where product_code in ('4435D','4436E','5656F', '5670L');
我们如何实现这一目标? 任何帮助将不胜感激。
答案 0 :(得分:0)
如何使用?
Select * from sub_products
where product_code like '%4435D%' or product_code like '%5656F%' or product_code like '%5670L%';
答案 1 :(得分:0)
您可以使用CONTAINS关键字(请查看:Is there a combination of "LIKE" and "IN" in SQL?)
WHERE CONTAINS(product_code,'4435D OR 4436E OR 5656F OR 5670L',1)>0
答案 2 :(得分: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
您可以在查询中将其用作子查询。样本fiddle