если у вас естьКак найти счетчик пробелов в значениях столбцов?
e_id ename
1 hansen sahul
2 dennis richard rathore
как найти количество Ename из e_id 1, как? 2
Как найти количество ename e_id 2 как? 3
если у вас естьКак найти счетчик пробелов в значениях столбцов?
e_id ename
1 hansen sahul
2 dennis richard rathore
как найти количество Ename из e_id 1, как? 2
Как найти количество ename e_id 2 как? 3
К сожалению, функции манипуляции строками различаются между базами данных, поэтому я могу дать диалоги SQL Server. Если вы используете другую базу данных, вы должны найти замену для LEN
и REPLACE
:
declare @Names table (e_id int,ename varchar(3000))
insert into @Names (e_id, ename) values
(1,'hansen sahul'),
(2,'dennis richard rathore')
select e_id,LEN(ename) - LEN(REPLACE(ename,' ','')) + 1 as namecount
from @Names
Результат:
e_id namecount
----------- -----------
1 2
2 3
Это работает быть вычисление разницы в длине между простой строкой , и ту же строку, где были удалены пробелы. Это логически эквивалентно количеству пробелов в строке. Затем мы добавляем 1
в соответствии с вашим желаемым результатом (количество имен, а не количество пробелов).
(Настройка таблицы также говор, но только там, чтобы помочь создать рабочий сценарий)
Если возможно, сначала нужно канонизировать пробел (как будет зависеть от вашей РСУБД), так что вы не получите плохих результатов, если у вас было два пробела или пробел в начале или конце. –
@ctrahey - Да, также могут потребоваться многие другие операции очистки (например, могут быть другие символы пробелов, а не просто пробелы). OTOH, может быть, нам повезло, и у OP уже есть хорошее ограничение 'CHECK', предотвращающее появление таких значений в таблице. :-) –
ya это работает спасибо – user1500707
Пожалуйста объяснить ,, –
Какой систему базы данных? –
Такая таблица не соответствует 1NF и должна быть нормализована. – vyegorov