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

Откуда:
Сообщений: 6
уважаемые участники форума помогите пожалуйста



Удалить из строки все слова, начинающиеся на гласную букву.
10 сен 18, 13:55    [21669828]     Ответить | Цитировать Сообщить модератору
 Re: Удалить из строки все слова, начинающиеся на гласную букву.  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
vova321
уважаемые участники форума помогите пожалуйста



Удалить из строки все слова, начинающиеся на гласную букву.


задача делится на 3 этапа
1. делите строку на слова
2. удаляете всё, что начинается на 10 букв
3. склеиваете обратно.

что из этого вызывает затруднение?
10 сен 18, 13:58    [21669833]     Ответить | Цитировать Сообщить модератору
 Re: Удалить из строки все слова, начинающиеся на гласную букву.  [new]
vova321
Member

Откуда:
Сообщений: 6
Посетитель,

можно пожалуйста на примере. а то я думал что ставим приоритет на гласную и просто удаляем слово . но я не знаю как я риолизовать

Declare @s char(100)
Declare @i int
Declare @k int
Set @s='Очень много текста'
Set @i=1
Set @k=0
While @i<=Len(@s)
begin
if Substring(@s,@i,1) like '[аоеияэыюу]'
10 сен 18, 14:05    [21669843]     Ответить | Цитировать Сообщить модератору
 Re: Удалить из строки все слова, начинающиеся на гласную букву.  [new]
court
Member

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

declare @s varchar(max), @res varchar(max)=''
Set @s='уважаемые участники форума помогите пожалуйста Удалить из строки все слова, начинающиеся на гласную букву' 

declare @xml xml = cast('<a>'+replace(@s, ' ', '</a><a>')+'</a>' as xml)

select 
	@res = ltrim(@res+' '+t.c.value('text()[1]','varchar(100)'))
from @xml.nodes('a') as t(c)
where t.c.value('text()[1]','varchar(100)') not like '[аоеияэыюу]%'

select @res
10 сен 18, 14:13    [21669859]     Ответить | Цитировать Сообщить модератору
 Re: Удалить из строки все слова, начинающиеся на гласную букву.  [new]
Владимир Затуливетер
Member

Откуда:
Сообщений: 427
declare @s nvarchar(max) = N'уважаемые участники форума помогите пожалуйста Удалить из строки все слова, начинающиеся на гласную букву' 

select concat(value, ' ')
from string_split(@s, ' ')
where value not like N'[аоеияэыюу]%'
for xml path('')
10 сен 18, 14:24    [21669876]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить