2009-05-26 66 views
1

的值更新列C I需要实现此与列A和列B

update [table] 
set [column c] = (select [column a] + ' ' + [column b] from [table]) 

但我得到这个错误信息

子查询返回大于1倍的值。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。

我如何能实现无意外的结果预期的效果:)

吉姆

回答

5

这很简单:

update table 
set c = a + ' ' + b 

这将更新表中的所有行。

+0

Duh ...谢谢... :) – jim 2009-05-26 09:24:06

2

尝试向子查询添加WHERE子句,以便仅挑选出一行。

+0

感谢您的提示 – jim 2009-05-26 09:55:05

1

更新表SET c = a +''+ b; -------如果a,b,c是char/var char数据类型,

如果它们是数字数据类型,则会给出错误。 同时检查C的长度,例如:如果C varchar2(30),varchar2(10)和b varchar2(15)它正确,如果右侧值的长度更多,则会给出错误。