此选择返回我的客户数据库,选择中的所有名称现在都带有姓氏“Smith”。
select
(substring(customername, 1, charindex (' ', customername))) + 'Smith'
from
customer)
但是当我更新到:
update Customer
set CustomerName = (select (substring(customername, 1, charindex(' ', customername))) + 'Smith' from customer)
我收到错误
子查询返回超过 1 个值。当子查询跟在 =、!=、<, <= , >、>= 后面或子查询用作表达式时,这是不允许的。
感谢您的帮助。
所以基本上这个错误是告诉你你的
SELECT
已经返回了多行。这会导致错误,因为它将尝试设置一个字段,但您为这一字段提供了多个值。
你可以试试下面的方法
UPDATE Customer
SET CustomerName = substring(customername, 1, charindex(' ', customername))) + 'Smith'
然后,通过将 Smith 添加到名称末尾,用行迭代中的当前值更新字段