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

Откуда:
Сообщений: 2695
Доброго дня господа !

Необходимо сосчитать кол-во ОПРЕДЕЛЕННЫХ символов в строке

Данные
select Функция(F1, ',')
from (select '234,677,89,000' as F1)

Результат = 3

Есть ли системные функции ? (писать пользов. не хочеться)

Заранее благодарен !
20 фев 12, 18:59    [12125860]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во символов в строке  [new]
qwerty112
Guest
HOME_X,

select len('234,677,89,000') - len(replace('234,677,89,000',',',''))
20 фев 12, 19:02    [12125875]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во символов в строке  [new]
HOME_X
Member

Откуда:
Сообщений: 2695
qwerty112,

Ну да ... !!!
В принципе ... можно

может еще как-то ?
20 фев 12, 19:09    [12125897]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во символов в строке  [new]
Glory
Member

Откуда:
Сообщений: 104751
HOME_X
может еще как-то ?

Распарсить на символы. Сгруппировать с агрегатом.
20 фев 12, 19:11    [12125909]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во символов в строке  [new]
HOME_X
Member

Откуда:
Сообщений: 2695
Glory,

Вариант 1 - проще

Спасибо господа
20 фев 12, 19:14    [12125928]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во символов в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
qwerty112
HOME_X,

select len('234,677,89,000') - len(replace('234,677,89,000',',',''))
А если такая строка:
select len('234,677,89,000, , ,') - len(replace('234,677,89,000, , ,',',',''))
?
20 фев 12, 21:46    [12126484]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во символов в строке  [new]
qwerty112
Guest
iap
qwerty112
HOME_X,

select len('234,677,89,000') - len(replace('234,677,89,000',',',''))
А если такая строка:
select len('234,677,89,000, , ,') - len(replace('234,677,89,000, , ,',',',''))
?

...нда, интересный "эффект" :)
не знал, спасибо !

но "обойти", вообщем - просто
select 
len('234,677,89,000, , ,') - len(replace('234,677,89,000, , ,',',','')),
len('234,677,89,000, , ,'+'!') - len(replace('234,677,89,000, , ,'+'!',',',''))

----------- ----------- 
8           6

(1 row(s) affected)
20 фев 12, 23:08    [12126770]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во символов в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
qwerty112,

ещё проще обойти, заменяя LEN() на DATALENGTH() и учитывая,
что вместо символов будут считаться байты.
Для юникода, например, надо будет делить количество байт на 2.
21 фев 12, 10:14    [12127859]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во символов в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
qwerty112,

ещё проще обойти, заменяя LEN() на DATALENGTH() и учитывая,
что вместо символов будут считаться байты.
Для юникода, например, надо будет делить количество байт на 2.
Кстати говоря, тут, на форуме,
это обсуждалось десятки раз.
Поиск рулит!
21 фев 12, 10:15    [12127867]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить