oracle或者excel中有没有取买一个字符在一个字符串中的个数?

表名:bd_accsubj
比如说我一个字段叫subjname varchar2(100)
里面有个值:交易性金融资产-债券-企业债券-企业债-公允价值变动
我想取出这个字符串中有多少个‘-’
并set到另一个字段subjlev number
如果oracle里面没有,那么excel里面有这样的函数吗??
最新回答
雨薇之恋

2024-11-04 10:23:26

可以,用数组,把那一行打散成一个字一个字的,然后统计"—"的个数,假如原数据在A1单元格,在B1输入
=SUM((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="-")+0)
CTRL+SHIFT+ENTER三键同时按下
菊部地区有血

2024-11-04 01:53:34

你说的这个,可以通过编程语言中的split函数实现,比如java和C#中都有。
但在Oracle中我没见过,Excel中的VBA函数也有一个split。
野港

2024-11-04 20:29:38

oracle中
instr(被检索的字符串,要查找的子字符串,[查找的起始位置,[出现次数]]);
你可以好好查一下这个函数的使用。
比如你可以做循环去用这个函数读,直到读不到的时候,那个循环次数-1就是这个字符的个数
各种嗨

2024-11-04 15:31:41

把excel中的那个字段所在的列,复制到记事本中,在从记事本中复制到word中,插入-文本转换成表格--分割符为‘-’,然后就转换成一列一列的,最后从word中复制到excel中就可以了,觉得有点儿麻烦,但还是可以实现。