1

我需要实现这一点

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

但我收到此错误消息

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

如何在没有不良结果的情况下达到预期效果:)

吉姆

4

3 回答 3

5

这很容易:

update table
set c = a + ' ' + b

这将更新表中的所有行。

于 2009-05-26T09:21:58.670 回答
2

尝试将 WHERE 子句添加到子查询中,以便它只选择一行。

于 2009-05-26T09:26:07.600 回答
1

UPDATE table SET c= a+' '+b;--------如果 a,b,c 是 char/var char 数据类型,则此方法有效。

如果它们是数字数据类型,则会出错。还要检查 C.for 的长度,例如:如果 C varchar2(30)、a varchar2(10) 和 b varchar2(15),如果右侧值的长度更大,则会出现错误。

于 2009-05-26T18:56:49.833 回答