Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle使用REPLACE with IN语句_Sql_Oracle - Fatal编程技术网

Sql Oracle使用REPLACE with IN语句

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

我有一个订单类型字符串,它们用破折号分隔,如00235-3844-42-523-3DF44

我想在我的查询中使用这个字符串,并替换破折号以将其格式化为WHERE in子句。我猜在('00235','3844'中, 当我在查询中的WHERE之后使用REPLACE函数时,“42”、“523”、“3DF44”)

任何建议

谢谢,
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| | |-)