Возможно, вы захотите передать конкатенацию FirstName + ' ' + MiddleInitial + ' ' + LastName + ' ' + Suffix
через функцию REPLACE()
, чтобы заменить повторяющиеся пробелы в один пробел.
REPLACE(FirstName + ' ' + MiddleInitial + ' ' + LastName + ' ' + Suffix, ' ', ' ')
-- -- -
РЕДАКТИРОВАТЬ:
Только что заметил, что некоторые из ваших полей могут быть NULL
, и поэтому вышеописанное не будет работать в этом случае, так как вся строка станет NULL
.В этом случае вы можете использовать COALESCE()
метод, предложенный Томасом , но все равно оберните его в REPLACE()
:
REPLACE(RTRIM(COALESCE(FirstName + ' ', '') +
COALESCE(MiddleInitial + ' ', '') +
COALESCE(LastName + ' ', '') +
COALESCE(Suffix, '')), ' ', ' ')
Тест:
SELECT REPLACE(RTRIM(COALESCE('John' + ' ', '') +
COALESCE('' + ' ', '') +
COALESCE('Doe' + ' ', '') +
COALESCE(NULL, '')), ' ', ' ')
-- Returns: John Doe