1.情景展示
在oracle當中,如何統計某個字符/指定字符串在字符串中出現的次數?
如:411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681。
2.具體分析
通過LENGTHB()+TRANSLATE()或者LENGTHB()+REPLACE()實現。
3.解決方案
方式一:LENGTHB(TRANSLATE(string, character || string, character))
SELECT LENGTHB(TRANSLATE('411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681',
',' ||
'411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681',
','))
FROM DUAL
TRANSLATE(string, character || string, character):只保留某些特定字符,並將其余字符排除。
方式二:LENGTHB(string)-LENGTHB(REPLACE(string, character, ''))
SELECT LENGTHB('411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681') -
LENGTHB(REPLACE('411600,411602,411603,411606,411609,411621,411622,411623,411624,411625,411626,411627,411628,411643,411681,',
',',
''))
FROM DUAL;
REPLACE(string, character, ''):將字符串當中的特定字符替換成空。
寫在最后
哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!