使用另外两列填充新的SQL列

使用另外两列填充新的SQL列,sql,database,sql-update,Sql,Database,Sql Update,我正在尝试将表中的行合并为表中的新行。特别是将First_Name和Last_Name列为First_Last。我在运行查询时遇到了问题,因为我试图对表中的所有条目而不仅仅是一行执行此操作。有什么建议吗 当前代码: update Name set First_Last = (select First_Name + ' ' + Last_Name from Name) 谢谢, Justin假设您打算为每一行使用名字和姓氏值来更新同一表中的所有行,那么它非常简单(在Sql Server中)

我正在尝试将表中的行合并为表中的新行。特别是将First_Name和Last_Name列为First_Last。我在运行查询时遇到了问题,因为我试图对表中的所有条目而不仅仅是一行执行此操作。有什么建议吗

当前代码:

    update Name
set First_Last = (select First_Name + ' ' + Last_Name from Name)
谢谢,
Justin

假设您打算为每一行使用
名字和
姓氏值来更新同一表中的所有行,那么它非常简单(在Sql Server中):

在大多数其他RBDM中,使用管道
|
操作符或
CONCAT
函数组合文本

请注意,大多数RDBMS还具有计算(有时称为生成)列的概念,这可以防止存储派生字段时出现冗余和同步问题:

CREATE TABLE MyTable...
(

   First_Last AS first_name + ' ' + last_name
);

您没有指定RDBMS,但如果您使用的是MySQL,则可以使用该函数


您正在使用什么rdbms?sql server、mysql、sqlite?给出的答案当然是正确的,但这个过程会导致一个设计非常糟糕的表。你应该考虑创建你的表的观点。我正在使用SQLServer2008R2。每次我尝试上面的代码时,我都会遇到这样的错误:“子查询返回的值超过1。当子查询后跟=、!=、=或子查询用作表达式时,这是不允许的。”@Walcottjc没问题,您没有指定,所以我想我应该为MySQL添加一个答案
CREATE TABLE MyTable...
(

   First_Last AS first_name + ' ' + last_name
);
update Name 
set First_Last = concat(First_Name, ' ', Last_Name)