仅更新其他表中存在cust_id的行

时间:2015-06-03 11:19:04

标签: sql subquery

我有一个查询,它将显示要进行网络化的客户列表:

select cu_number into #_t
from customer
where cu_first_name is not null

我想将last_name更新为“'Anonomized'+ sequence”并试试这个:

update customer
  set cu_last_name = 'Anonomized' + convert(varchar, cu_number)
where cu_number = (select * from #_t);

我收到以下错误,似乎无法找到合适的方法:

  

“子查询返回的值超过1。当子查询跟随=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。”

任何有关如何改进子查询的人都知道了吗?

/安德烈亚斯

2 个答案:

答案 0 :(得分:2)

我认为你根本不需要临时表:

update customer set cu_last_name='Anonomized' + convert(char, cu_number)
where cu_first_name is not null

MySQL中,您无法使用convert类型的varchar功能。

Sql Server

update customer set cu_last_name='Anonomized' + convert(varchar(10), cu_number)
where cu_first_name is not null

答案 1 :(得分:0)

由于答案是在评论中提供的,我认为我会将其作为答案添加。添加" IN"而不是" ="解决了我的问题。

where cu_number IN (select * from #_t);

谢谢你,@ Jarlh!并感谢其余的以及未来的重要提示。