引用同一数据集中其他列的列

时间:2018-06-02 21:19:07

标签: sql sql-server

我正在尝试创建一个显示其他列值的列。换句话说,一个列引用其他列并显示它们的值而不是定义或只是一个'是'或者'否'。例如,这是我到目前为止:

alter table [dbo].[Mortality2015]
add [Education] varchar(50) null

update [dbo].[Mortality2015]
set [Education] = case
                     when [education_reporting_flag] = 0 
                        then [education_1989_revision]
                     when [education_reporting_flag] = 1 
                        then [education_2003_revision]
                     when [education_reporting_flag] = 2 
                        then null
                  end

我得到一个只有空值的新列。任何人都知道如何使这项工作?

1 个答案:

答案 0 :(得分:0)

我不知道您的查询有什么问题。但是,您不必添加新的"真实"列到数据。您可以添加计算列。这看起来像:

alter table [dbo].[Mortality2015]
    add Education as (case when [education_reporting_flag] = 0 then [education_1989_revision]
                           when [education_reporting_flag] = 1 then [education_2003_revision]
                      end);

当然,这与你的版本基本相同。有用的是Education在使用时计算,因此它始终是最新的。