根据其他列在表中创建一个新列

时间:2019-09-19 07:42:04

标签: sql-server tsql ddl

在我的表格中,我有一栏写着公司代码

example
DE06 or DE07

现在我需要在此表中添加一个新列,其中DE06的值为“ YES”,DE07的值为“ NO”

我尝试为De06添加一个条件,但我无法使其正常工作

ALTER Table dbo.DE06_PROJECT$
add [PROJECT_COMPANY_CODE2] nvarchar(50)   null 
GO
UPDATE dbo.DE06_PROJECT$ SET [PROJECT_COMPANY_CODE] ='YES'   where([COMPANY_CODE]='DE06')
GO

我需要基于列[COMPANY_CODE]的值的新列[PROJECT_COMPANY_CODE2],结果为“是”或“否”

我忘了提一提,将来我可能需要3种可能性:DE06为“是”,DE07为“否”,DE08为“ MAYBE”

2 个答案:

答案 0 :(得分:0)

如果您有SQL Server,则可以申请CASE

UPDATE dbo.DE06_PROJECT$ 
SET [PROJECT_COMPANY_CODE] = CASE WHEN [COMPANY_CODE]='DE06' THEN 'YES' ELSE 'NO' END

答案 1 :(得分:0)

使用计算列来确保数据一致性:

ALTER TABLE dbo.DE06_PROJECT$
ADD [PROJECT_COMPANY_CODE] AS CASE [COMPANY_CODE] WHEN 'DE06' THEN 'YES'
                                                  WHEN 'DE07' THEN 'NO'
                                                  WHEN 'DE08' THEN 'MAYBE'
                                                  ELSE 'whatever' END