SQL-как получить количество подстрок в строке в столбце - PullRequest
0 голосов
/ 11 мая 2018

У меня есть таблица с именем Garden.

В таблице Garden есть столбец с именем Fruit с тысячами строк. и каждая строка Fruit имеет значения, разделенные запятыми, такие как Apple, Banana, Pear и т. д.

Я хочу получить количество плодов в каждой строке в столбце Fruit. например, если в первой строке есть Apple, Banana, Pear, то счетчик должен вернуть 3.

Как написать SQL-запрос для него.

Я пытался использовать регулярные выражения, но он не работает.

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Если вы используете базу данных Oracle, то можете использовать REGEXP_COUNT регулярное выражение. Найдите приведенный ниже пример: -

     create table garden( fruit varchar2(1000));

     insert into garden VALUES('apple,bananan,pear');
     insert into garden VALUES('orange,bananan');
     insert into garden VALUES('apple,bananan,pear,orange');

     select * from garden;

     output:-

     FRUIT
     ------------------
     apple,bananan,pear
     orange,bananan
     apple,bananan,pear,orange

Теперь вы можете использовать запрос ниже, чтобы получить счет.

select REGEXP_COUNT(Fruit, ',')+1 as fruit_count from garden;

0 голосов
/ 11 мая 2018

Это будет работать:

select length(Fruit) - length(replace(Fruit, ',', '')) + 1 from Garden

Эта часть len(Fruit) - len(replace(Fruit, ',', '')) возвращает количество запятых в вашей строке и всегда на один элемент больше запятых, поэтому нам нужно добавить 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...