Это не так уж плохо, если у вас есть строка разделитель. Мне нравится this one, особенно для этой цели. Принимая данные, которые вы отправили, вам нужен другой столбец для первичного ключа. Тогда вы можете сделать это полностью на основе набора, не требуется цикл, как в ответе, предложенном как дубликат.
Это выглядит как домашнее задание, но это также было веселой задачей в пятницу, поэтому я решил что-то повесить.
declare @Something table
(
SomeValue varchar(50)
, SomeKey int identity
)
insert @Something
select 'Today is sunday' union all
select 'Hi how are you' union all
select 'Hello i am bharadwaj' union all
select 'Hi i am fine' union all
select 'Help me out';
with ParsedWords as
(
select SomeKey
, Item
, x.ItemNumber
from @Something
cross apply dbo.DelimitedSplit8K(SomeValue, ' ') x
)
, ReversedWords as
(
select SomeKey
, LOWER(STUFF((select ' ' + p2.Item
from ParsedWords p2
where p2.SomeKey = p.SomeKey
order by p2.ItemNumber desc
for XML PATH('')), 1, 1, '')) as Reversed
from ParsedWords p
group by p.SomeKey
)
select UPPER(LEFT(Reversed, 1)) + LOWER(SUBSTRING(Reversed, 2, len(Reversed)))
from ReversedWords rw
order by rw.SomeKey
и что вы пробовали? – JiggsJedi
Ваш пример, похоже, обращает слова, разделенные пробелами, внутри строки, а не строки в таблице. И меняется капитализация. –
Вам нужно сделать домашнее задание самостоятельно – RezaRahmati