我有一个查询,它将显示要进行网络化的客户列表:
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。当子查询跟随=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。”
任何有关如何改进子查询的人都知道了吗?
/安德烈亚斯
答案 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!并感谢其余的以及未来的重要提示。