如何将列添加到表中列值取决于其他列

时间:2015-12-09 09:20:22

标签: sql sql-server tsql

我想改变我的表并在其中添加一列“mycolumn”。列值取决于表中的三列。

例如:

  ID     mycolumn       col1      col2      col3
.....   ...........    ......    ......    ......
  1       1111           1         1         1
  2       1112           1         1         1
  3       1213           1         2         1
  4       1224           1         2         2
  5       2225           2         2         2

1 个答案:

答案 0 :(得分:2)

将列创建为可为空,然后执行此UPDATE:

UPDATE dbo.MyTable 
SET mycolumn = CAST(
       CAST(col1 AS VARCHAR(5)) +
       CAST(col2 AS VARCHAR(5)) +
       CAST(col3 AS VARCHAR(5)) +
       CAST(ID AS VARCHAR(5)) AS int)
WHERE mycolumn IS NULL

Fiddle Demo

您还可以使用计算列(是否保留):

--ALTER TABLE dbo.MyTable
--DROP COLUMN [MyColumn]

ALTER TABLE dbo.MyTable
ADD [MyColumn] AS 
   ((CONVERT([nvarchar](max),col1,0))+CONVERT([nvarchar](max),col2,0)+CONVERT([nvarchar](max),col3,0)+CONVERT([nvarchar](max),[ID],0)) PERSISTED