level是oracle的关键字,表示查询深度,用来实现层级查询。

统计字符串指定字符个数

length(v_numlist)- length(replace(v_numlist,',',''))
v_numlist是原字符串,求出逗号的个数
通过求出原字符串长度和删除指定字符的字符串长度,相减获得统计个数

模拟split拆分检索

假设表tab1中仅有一行记录,内容如下:

NumlistNumPosi

其中Posi列的值为空
求Num列的数字在Numlist列中第一次出现时是第几个数字,并把结果更新到Posi列中。如果找不到,则写-1。
例如,当Numlist = ‘23,56,90,543,91’,Num = 91时,Posi = 5;
当Numlist = ‘23,56,90,543,91’,Num = 54时,Posi = -1。
注意:尽管543中有54这个数字,但并不认为54出现过。
根据这些条件,使用字符串拆分或许是最快的办法。