SQL Select 没问题,但 SQL update 返回错误。我错过了什么?

问题描述 投票:0回答:1

此选择返回我的客户数据库,选择中的所有名称现在都带有姓氏“Smith”。

select 
    (substring(customername, 1, charindex (' ', customername))) + 'Smith'  
from  
    customer)

但是当我更新到:

update Customer 
set CustomerName = (select (substring(customername, 1, charindex(' ', customername))) + 'Smith' from customer) 

我收到错误

子查询返回超过 1 个值。当子查询跟在 =、!=、<, <= , >、>= 后面或子查询用作表达式时,这是不允许的。

感谢您的帮助。

sql
1个回答
0
投票

所以基本上这个错误是告诉你你的

SELECT
已经返回了多行。这会导致错误,因为它将尝试设置一个字段,但您为这一字段提供了多个值。 你可以试试下面的方法

UPDATE Customer
SET CustomerName = substring(customername, 1, charindex(' ', customername))) + 'Smith'

然后,通过将 Smith 添加到名称末尾,用行迭代中的当前值更新字段

© www.soinside.com 2019 - 2024. All rights reserved.