关于oracle使用find_in_set函数
在Oracle中,FIND_IN_SET
函数并不是内置函数,它是MySQL数据库中的函数,用于在逗号分隔的字符串列表中查找字符串。在Oracle中,你可以使用INSTR
函数来实现类似的功能。
以下是一个使用INSTR
函数的例子,它模拟了FIND_IN_SET
的行为:
假设我们有一个逗号分隔的字符串列表 'a,b,c',我们想要找出字符串'b'在该列表中的位置。
在MySQL中,你会这样写:
SELECT FIND_IN_SET('b', 'a,b,c');
这将返回2,因为字符串'b'是第二个(从1开始计数)逗号分隔的字符串。
在Oracle中,你可以这样写:
SELECT INSTR('a,b,c', 'b') - INSTR('a,b,c', ',') AS position
FROM dual;
这同样会返回2,因为INSTR('a,b,c', 'b')
返回'b'第一次出现的位置(6),而INSTR('a,b,c', ',')
返回第一个逗号出现的位置(2),差值减1得到元素个数。
请注意,dual
是Oracle中的虚拟表,可以用来进行此类计算。
评论已关闭