从同一个表的一列更新多个列值

时间:2016-07-24 09:35:05

标签: sql sql-server sql-update

在我的表中有两列。 表结构是:

Combined的数据类型为varchar(50),First的数据类型为int

ID--Combined -----------First 

1---1.2.3.4-------------- null

2---3.8.6.9-------------- null

我想将其转换为

ID---Combined -----------First 

1---1.2.3.4-------------- 1

2---3.8.6.9-------------- 3

我写了这行代码

UPDATE dbo.Test 
SET dbo.Test.First = CAST(SUBSTRING(T.Combined,1,1) AS INT)  
FROM dbo.Test as T 
WHERE T.ID = dbo.Test.ID;

但是我的代码提供了错误“The multi-part identifier "dbo.Test.ID" could not be bound.

1 个答案:

答案 0 :(得分:1)

您不需要此处的更新 - 来自语法。由于您希望First列与同一行的Combined相关,因此只需使用简单的更新语句:

UPDATE dbo.Test
SET    dbo.Test.First = CAST(SUBSTRING(dbo.Test.Combined, 1, 1) AS INT)