Если вы хотите сделать это в два шага, а не в трех из REVERSE-STUFF-REVERSE, вы можете использовать разделитель списка с одним или двумя пробелами. Затем используйте RTRIM, чтобы обрезать завершающие пробелы, и ЗАМЕНИТЕ, чтобы заменить двойные пробелы на ','
select REPLACE(RTRIM('a b c d '),' ', ', ')
Однако это не очень хорошая идея, если ваша исходная строка может содержать внутренние пробелы.
Не уверен насчет производительности. Каждый REVERSE создает новую копию строки, но STUFF на треть быстрее, чем REPLACE.
см. Также это