Как обновить несколько строк с помощью оператора select, ссылающегося на одну и ту же таблицу - PullRequest
1 голос
/ 28 июня 2019

Я не могу найти похожий сценарий, чтобы ответить на этот вопрос.

У меня есть таблица, продавец, и в столбце с текущим именем отображается следующее:

Undefined - 0
Sam Brett-sbrett
Kelly Roberts-kroberts
Michael Paramore-mparamore
Alivia Lawler-alawler
Ryan Hooker-rhooker
Heather Alford-halford
Cassandra Blegen-cblegen
JD Holland-jholland
Vendor Accounts-VENDOR
Other Accounts-OTHER
Rose Johnson-rjohnson

Я разработал следующий запрос для извлечения имени (без идентификатора в конце), которым я хочу обновить этот столбец:

SELECT left(salesperson_name, CHARINDEX('-', salesperson_name) - 1)
FROM Salesperson
------------------------
Undefined 
Sam Brett
Kelly Roberts
Michael Paramore
Alivia Lawler
Ryan Hooker
Heather Alford
Cassandra Blegen
JD Holland
Vendor Accounts
Other Accounts
Rose Johnson

Я пробовал многочисленные варианты следующего, но получаю понятную ошибку "Подзапрос возвратил более 1 значения ...".

begin tran
update salesperson
set salesperson_name = (SELECT left(salesperson_name, CHARINDEX('-', salesperson_name) - 1)
FROM Salesperson) 

Уверен, я почувствую себя идиотом, как только кто-нибудь исправит это, но в данный момент я совершенно не понимаю, как с этим справиться. Спасибо, ребята, вы всегда вздохнули с облегчением LOL

1 Ответ

3 голосов
/ 28 июня 2019

почему бы не простой

update salesperson
set  salesperson_name  = left(salesperson_name, CHARINDEX('-', salesperson_name) - 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...