
SQL | Подсчёт определённых символов в строке
Казалось бы, очень простая задача. Однако в SQL нет специального метода для подсчёта вхождений символа в строку.
Зато есть метод LENGTH, с помощью которого можно узнать длину строки.
Следовательно, для выполнения исходной задачи нам нужно:
1. Получить длину исходной строки
2. Заменить в исходной строке искомые символы на пустоту ('')
3. Вычесть из длины исходной строки длину полученной строки
Это и будет количеством вхождений нужного нам символа в строку.
Казалось бы, очень простая задача. Однако в SQL нет специального метода для подсчёта вхождений символа в строку.
Зато есть метод LENGTH, с помощью которого можно узнать длину строки.
Следовательно, для выполнения исходной задачи нам нужно:
1. Получить длину исходной строки
2. Заменить в исходной строке искомые символы на пустоту ('')
3. Вычесть из длины исходной строки длину полученной строки
SELECT (LENGTH('1 2 3 4 5 6') - LENGTH(REPLACE('1 2 3 4 5 6', ' ', ''))) AS symb_count
Это и будет количеством вхождений нужного нам символа в строку.