Подтвердить что ты не робот

Как подсчитать количество символов, появляющихся в столбце SQL?

Для таблицы регистрации пользователя, которую я имею в базе данных SQL, я отслежу некоторые параметры запроса отчета. Отчет позволяет передать несколько идентификаторов, и я сохраняю их все в одном столбце в столбце базы данных. Если бы это был нормализованный набор данных, для этого определенно была бы дополнительная настройка таблицы, но это то, что было унаследовано...

Теперь меня попросили дать быстрый подсчет количества раз, когда был запущен отчет с более чем 2 идентификаторами, переданными ему. Я могу легко получить количество записей, которые содержат более одного отчета, потому что все они содержат запятую.

Что мне нужно сделать, это подсчитать количество раз, когда запятая появляется в столбце. Как вы это делаете в SQL?

--count the number of times more than 1 report was requested in the record
select 
    count(*) as cnt
from
    [table]
where
    RequestedReportParams Like '%,%'
4b9b3361

Ответ 1

SELECT LEN(RequestedReportParams) - LEN(REPLACE(RequestedReportParams, ',', ''))
FROM YourTable
WHERE .....

Это просто сравнение длины столбца с запятыми, с длиной значения с удаленными запятыми, чтобы дать вам разницу (т.е. количество запятых)

Ответ 2

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

select 
    count(*) as cnt
FROM 
    [table]
WHERE 
    RequestedReportParams Like '%,%,%'