Sql Oracle使用REPLACE with IN语句
我有一个订单类型字符串,它们用破折号分隔,如00235-3844-42-523-3DF44 我想在我的查询中使用这个字符串,并替换破折号以将其格式化为WHERE in子句。我猜在('00235','3844'中, 当我在查询中的WHERE之后使用REPLACE函数时,“42”、“523”、“3DF44”) 任何建议 谢谢,Sql Oracle使用REPLACE with IN语句,sql,oracle,Sql,Oracle,我有一个订单类型字符串,它们用破折号分隔,如00235-3844-42-523-3DF44 我想在我的查询中使用这个字符串,并替换破折号以将其格式化为WHERE in子句。我猜在('00235','3844'中, 当我在查询中的WHERE之后使用REPLACE函数时,“42”、“523”、“3DF44”) 任何建议 谢谢, Brian我不知道这个答案是否离您想要的太远,但在某些假设下,您可以完成where子句,而无需标记用破折号分隔的字符串。你可以用 WHERE INSTR('00235-384
Brian我不知道这个答案是否离您想要的太远,但在某些假设下,您可以完成where子句,而无需标记用破折号分隔的字符串。你可以用
WHERE INSTR('00235-3844-42-523-3DF44',str_to_find)!=0
我建议INSTR的原因是,标记化可能更昂贵、更复杂。oracle的哪个版本?您当前的查询看起来像。。。。其中顺序_在('00235'、'3844'、'42'、'523'、'3DF44')中输入?您可以发布您当前的查询吗?在我的示例中,我将在字段order_类型中查找的字符串是00235或3844或42或523或3DF44。INSTR还能用吗?这很有效,我今天从你那里学到了一些东西。给我一两年的时间,我会在这方面做得很好。为了使它更健壮(例如,使
24
与1245
不匹配),我会在它周围加上终止符,例如INSTR('-00235-3844-42-523-3DF44-',“-”| | str u|u| | |-)