Sql server 如何反转列中的单词

Sql server 如何反转列中的单词,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我的表包含如下数据 可乐 ------------- 今天是星期天 你好 你好,我是巴拉德瓦 嗨,我很好 帮帮我 我需要如下输出 可乐 ------------- 星期天就是今天 你好吗 巴拉德瓦:我是哈罗吗 很好,你好吗 Out me help如果您有一个字符串拆分器,这还不错。我喜欢,尤其是为了这个目的。获取发布的数据时,需要另一列作为主键。然后,您可以完全基于集合进行此操作,不需要像建议的答案中的重复那样进行循环 这看起来很像家庭作业,但在周五也是一个有趣的挑战,所以我决定一起做些事情 d

我的表包含如下数据

可乐 ------------- 今天是星期天 你好 你好,我是巴拉德瓦 嗨,我很好 帮帮我

我需要如下输出

可乐 ------------- 星期天就是今天 你好吗 巴拉德瓦:我是哈罗吗 很好,你好吗
Out me help

如果您有一个字符串拆分器,这还不错。我喜欢,尤其是为了这个目的。获取发布的数据时,需要另一列作为主键。然后,您可以完全基于集合进行此操作,不需要像建议的答案中的重复那样进行循环

这看起来很像家庭作业,但在周五也是一个有趣的挑战,所以我决定一起做些事情

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

您尝试了什么?您的示例似乎是反转字符串中以空格分隔的单词,而不是表中的行。你需要自己做作业