将列的数据附加到SQL Server中的另一列

时间:2013-07-04 20:39:56

标签: sql sql-server

我想将Field1中的所有内容追加到Field2,然后为表中的所有记录使Field1值为NULL。我不想将这些字段合并到一个字段中,我仍然希望保留两个字段。

采用以下示例:

Field 1       Field 2
Test Value    NULL
NULL          Another Value
My Value      Current Value

我想最终:

Field 1       Field 2
NULL          Test Value
NULL          Another Value
NULL          Current ValueMyValue

提前致谢!

3 个答案:

答案 0 :(得分:5)

怎么样:

UPDATE table
SET Field2 = isnull(Field2,'') + isnull(Field1,''), Field1 = NULL

如果您不确定是什么,我会建议将更新包装在BEGIN TRAN,ROLLBACK中,如下所示:

BEGIN TRAN

SELECT * FROM thistable

UPDATE thistable
SET Field2 = isnull(Field2,'') + isnull(Field1,'')
, Field1 = NULL

SELECT * FROM thistable

ROLLBACK

通过这种方式,您可以查看查询在进行更改之前将执行的操作永久性#39;一旦你开心,将ROLLBACK更改为COMMIT并再次运行。

VIEW DEMO HERE

答案 1 :(得分:0)

怎么样:

UPDATE MyTable
SET Field2 = ISNULL(Field2, '') + ISNULL(Field1, '')

将值加入Field2。

UPDATE MyTable
SET Field1 = NULL

一旦确定第一个脚本有效,就清除Field1。

答案 2 :(得分:0)

这样的事情怎么样:

UPDATE <Table name> SET field_2 = CONCAT(field_2, field_1);
UPDATE <Table name> SET field_1 = NULL;