我似乎找不到类似的情况来回答这个问题。
我有一张桌子,销售员,当前名称列显示以下内容:
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
我开发了以下查询来提取要用来更新此列的名称(减去末尾的ID):
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)
我敢肯定,一旦有人纠正了这个问题,我会觉得自己是个白痴,但是目前,我完全不了解如何解决这个问题。谢谢大家,您总是长舒一口气。
答案 0 :(得分:3)
为什么不简单
update salesperson
set salesperson_name = left(salesperson_name, CHARINDEX('-', salesperson_name) - 1)