2015-06-05 3 views
-3

Моя таблица содержит следующие данные
Как отменить слова в колонке

КОЛА
------------------------ -
Сегодня воскресенье
Привет, как вы
Привет я Бхарадваж
Привет я в порядке
Помоги мне

I Need о utput как следующим

COLA
-------------------------
воскресенье сегодня
Вы как привет
Bharadwaj я я привет
Fine я я привет
Out мне помочь

+3

и что вы пробовали? – JiggsJedi

+2

Ваш пример, похоже, обращает слова, разделенные пробелами, внутри строки, а не строки в таблице. И меняется капитализация. –

+1

Вам нужно сделать домашнее задание самостоятельно – RezaRahmati

ответ

0

Это не так уж плохо, если у вас есть строка разделитель. Мне нравится 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 
Смежные вопросы