T-SQL:如何反转字符串中的值

Aji*_*oel 1 sql t-sql sql-server

使用T-SQL,我试图找到最容易"Test One"成为的方法"One, Test".

基本上切换""和","如果列中只有2个单词,它们之间有空格.

例如:

Before             After
Test One           One, Test
Test Two One       Test Two One
Test, Three        Test, Three
Run Code Online (Sandbox Code Playgroud)

Tar*_*ryn 6

这个怎么样:

select col Before,
  case 
    when col like '%,%' then col 
    when len(replace(col, ' ', '')) = len(col) -1 
      then reverse(substring(reverse(col), 1, charindex(' ', reverse(col))-1))+', '+substring(col, 1, charindex(' ', col)-1)
    else col
  end  After
from yourtable
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo.结果是:

|       BEFORE |        AFTER |
-------------------------------
|     Test One |    One, Test |
| Test Two One | Test Two One |
|  Test, Three |  Test, Three |
Run Code Online (Sandbox Code Playgroud)