Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 подсчет количества опявлений определенной буквы в стринге.  [new]
Maktym
Member

Откуда:
Сообщений: 62
Добрый день Всем.
Вопрос такой:

Нужно написать функцию которая получает 2 параметра.
1.Стринг(какоето предложение)
2.Char(1) Какой-то символ(буква.)

Функция должна посчитать и вернуть кол-во повторений этого символа в стринге.

Зарание спасибо за ответ.
Если есть не ординарные решения буду рад.
5 авг 09, 11:04    [7499073]     Ответить | Цитировать Сообщить модератору
 Re: подсчет количества опявлений определенной буквы в стринге.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31213
Maktym
Если есть не ординарные решения буду рад.
Ординарное решение:
select len(my_field) - len(replace(myfield, 'символ', ''))
5 авг 09, 11:16    [7499181]     Ответить | Цитировать Сообщить модератору
 Re: подсчет количества опявлений определенной буквы в стринге.  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
alexeyvg
Maktym
Если есть не ординарные решения буду рад.
Ординарное решение:
select len(my_field) - len(replace(myfield, 'символ', ''))
Ну, неправильно же! Не LEN, а DATALENGTH,
да ещё в случае юникода про двухбайтовость символов не забыть!
5 авг 09, 11:26    [7499280]     Ответить | Цитировать Сообщить модератору
 Re: подсчет количества опявлений определенной буквы в стринге.  [new]
Maktym
Member

Откуда:
Сообщений: 62
спасибо.
Вопрос закрыт.
5 авг 09, 12:25    [7499797]     Ответить | Цитировать Сообщить модератору
 Re: подсчет количества опявлений определенной буквы в стринге.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31213
iap
alexeyvg
Ординарное решение:
select len(my_field) - len(replace(myfield, 'символ', ''))
Ну, неправильно же! Не LEN, а DATALENGTH,
да ещё в случае юникода про двухбайтовость символов не забыть!
Ну, если не нужно считать количество концевых пробелов, то нормально работает, да и юникод не надо учитывать...
5 авг 09, 12:33    [7499890]     Ответить | Цитировать Сообщить модератору
 Re: подсчет количества опявлений определенной буквы в стринге.  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
alexeyvg
iap
alexeyvg
Ординарное решение:
select len(my_field) - len(replace(myfield, 'символ', ''))
Ну, неправильно же! Не LEN, а DATALENGTH,
да ещё в случае юникода про двухбайтовость символов не забыть!
Ну, если не нужно считать количество концевых пробелов, то нормально работает, да и юникод не надо учитывать...
Концевых пробелов в строке может и не быть. Но строка может заканчиваться заменяемыми символами,
до которых стоят несколько пробелов. Тогда после замены они станут концевыми, и LEN их проигнорирует.
Если Вы предложили решение для специального вида строк, которые заведомо не заканчиваются на заданный символ или пробел,
то так и надо было сказать.
5 авг 09, 12:46    [7500010]     Ответить | Цитировать Сообщить модератору
 Re: подсчет количества опявлений определенной буквы в стринге.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31213
iap
alexeyvg
Ну, если не нужно считать количество концевых пробелов, то нормально работает, да и юникод не надо учитывать...
Концевых пробелов в строке может и не быть. Но строка может заканчиваться заменяемыми символами,
до которых стоят несколько пробелов.
Да, что-то про это я и не подумал, спасибо...
5 авг 09, 12:56    [7500111]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить