Обратный порядок строк - PullRequest
0 голосов
/ 09 апреля 2020

Мне нужно изменить порядок строк в одном столбце на SQL Сервер.

Пример:

"Smith,John" expected to "John Smith".
"Depp,Johnny" expected to "Johnny Depp".

Любая идея, как разделить ее запятой, а затем заключить, что разделенные пробелом?

Спасибо!

Ответы [ 3 ]

1 голос
/ 09 апреля 2020

Вы можете сделать следующее

SELECT S, CONCAT(
                 REPLACE(S, LEFT(S, CHARINDEX(',', S)), ''), ' ', 
                 LEFT(S, CHARINDEX(',', S)-1)
                )
FROM (VALUES('Smith,John'), ('Depp,Johnny')) T(S)
0 голосов
/ 09 апреля 2020

Один из способов разложить его и перекомпоновать:

select concat(substring(col, charindex(',', col)+1, len(col)), ' ',
              left(col, charindex(',', col)-1)
             )
0 голосов
/ 09 апреля 2020

Рекомендую "реконструкцию":

select concat(stuff(str, 1, charindex(',', str), ''), ' ',
              left(str, chardindex(',', str) - 1)
             ) as reversed_names
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...