2016-03-11 2 views
-2

У меня есть таблица под названием people и столбец под названием NAME, который имеет последнее первое среднее (если существует). так SMITH JOHN J Я хотел бы добавить запятую после первого слова, так что обновления Смита, JOHN JДобавление запятой после первого слова в столбце

Я попытался запустить это, но он взорвался:

update people 
set name = (CHARINDEX(' ', 0), 0, ',') 

Я знаю, что я близко, но это меня ускользает :(

+1

Почему не использовать отдельные столбцы для имени и фамилии? –

+0

, поэтому вы вызываете функцию CHARINDEX и передаете пробел, но не передаете что искать. Тогда у вас есть это внутри '()' - почему бы '()' - mybe вы пытаетесь вызвать REPLACE? REPLACE также потребуется параметр замены. – Hogan

+0

Удостоверьтесь, что вы считаете тех людей, которые имеют фамилии, такие как «Baron Cohen», «Bonham Carter» или «Vaughan Williams». –

ответ

2

Вы можете использовать STUFF() вместе с CHARINDEX() и LEFT() для этого:

update people 
set name = STUFF(name,1,CHARINDEX(' ',name)-1,LEFT(name ,CHARINDEX(' ',name)-1)+', ') 
WHERE CHARINDEX(' ',name) > 0 

может добавить WHERE, чтобы убедиться, что в названии есть пробел, поэтому это не ошибка или выражение CASE.

Может также использовать REPLACE() с CHARINDEX() и LEFT():

REPLACE(name,LEFT(name,CHARINDEX(' ',name)-1),LEFT(name,CHARINDEX(' ',name)-1)+',') 
+1

Это было мое предложение, а вы только что ответили прямо перед тем, как я отправил. –

+0

@hart CO первый работал как босс. Спасибо! – Sal

Смежные вопросы