Количество слов в фразе - SQL - PullRequest
0 голосов
/ 16 января 2020

Если у нас есть фраза «Меня зовут Мария». Я хотел бы получить результат 4, так как в предложении есть 4 слова.

Я хочу это в SQL. Я использовал функцию length, но она считает буквы.

Любая помощь?

Ответы [ 2 ]

2 голосов
/ 16 января 2020

Предполагая, что слова разделены одним пробелом, вы можете использовать метод подсчета и замены:

select length(str) - length(replace(str, ' ', '')) + 1

Это подсчитывает количество пробелов и добавляет 1.

РЕДАКТИРОВАТЬ:

Чтобы обработать несколько пробелов подряд, вы можете настроить это следующим образом:

select length(regexp_replace(str, ' +', ' ')) - length(replace(str, ' ', '')) + 1
0 голосов
/ 16 января 2020

Вы можете попробовать это:

select size(split(str, " ")) from your_table;

Или:

select length(regexp_replace(str, '[^ \t\r\n\v\f]', '')) + 1 from your_table;
...