MSSQL Как менять местами записи в таблице

Есть таблица с именами, где имена записываются так: "John, Smith", мне надо его превратить в "Smith John"

SELECT (REPLACE(Name, ',', ' ')) AS NewName
FROM Employees

Так я вывел Имя Фамилия без запятой, но ни как не могу понять как их местами поменять. Подскажите как это можно реализовать или где копать


Ответы (2 шт):

Автор решения: Aziz Umarov

Вот так посмотрите

SELECT 
    SubString(NAME, CHARINDEX( ',', NAME) + 1, LEN(NAME)) + ' '  + SubString(NAME, 0, CHARINDEX( ',', NAME))  AS NewName 
FROM
    (select 'Aziz, Umarov' AS NAME) AS t;
→ Ссылка
Автор решения: Yitzhak Khabinsky

Попробуйте следующий подход, используя встроенную функцию PARSENAME().

SQL

-- DDL and sample data population, start
DECLARE @tbl TABLE (ID INT IDENTITY PRIMARY KEY, fullName VARCHAR(100));
INSERT INTO @tbl (fullName) VALUES
('John, Smith'),
('Martha, Pollack');
-- DDL and sample data population, end

;WITH rs AS
(
    SELECT *, REPLACE(fullName, ',', '.') AS NewFullName 
    FROM @tbl
)
SELECT ID, fullName AS [Before]
    , CONCAT(PARSENAME(NewFullName, 1), SPACE(1), PARSENAME(NewFullName, 2)) AS [After]
FROM rs;

результат

+----+-----------------+-----------------+
| ID |     Before      |      After      |
+----+-----------------+-----------------+
|  1 | John, Smith     |  Smith John     |
|  2 | Martha, Pollack |  Pollack Martha |
+----+-----------------+-----------------+
→ Ссылка