列名称Projectgroup_NAM无效

时间:2012-10-11 14:38:17

标签: sql sql-server sql-server-2008

我在SQL Sever中的查询:

INSERT INTO BIT_Dashboard.dse.L_Projectgroup (Projectgrouptype_CD) VALUES
(
CASE Projectgroup_NAM

    WHEN ( 
         'BLA'
        | 'BI Projekt'
        | 'PDP'
        | 'VBM'
        ) THEN ('PRO')
END
)

我收到以下错误: “无效的列名'Projectgroup_NAM'。”

他的事情(也许我忘了强调)是我已经在表中有一些行,我想用查询更新某一行中的Projectgrouptype_CD。我做错了什么?

我的查询不起作用?

2 个答案:

答案 0 :(得分:2)

尝试将其更改为select statement

INSERT INTO BIT_Dashboard.dse.L_Projectgroup (Projectgrouptype_CD)
select
   CASE 
      WHEN Projectgroup_NAM in('BLA','BI Projekt','PDP','VBM') 
        THEN ('PRO')
   END
from BIT_Dashboard.dse.L_Projectgroup

我不确定表BIT_Dashboard.dse.L_Projectgroup是否正确,但这只是一个例子。

更新语法:

update BIT_Dashboard.dse.L_Projectgroup
  set Projectgrouptype_CD = 'PRO'
WHERE Projectgroup_NAM in('BLA','BI Projekt','PDP','VBM') 

如果您需要更多case

update BIT_Dashboard.dse.L_Projectgroup
      set Projectgrouptype_CD = 
        case 
          WHEN Projectgroup_NAM in('BLA','BI Projekt','PDP','VBM') then 'PRO'
          WHEN Projectgroup_NAM in('BIT') then 'BIT'
        END

答案 1 :(得分:2)

试试这个:

此处Projectgroup_NAM列应该来自一个表。我猜你是从另一个table1插入值

INSERT INTO BIT_Dashboard.dse.L_Projectgroup (Projectgrouptype_CD) 
select CASE when Projectgroup_NAM in('BLA'
        ,'BI Projekt'
        , 'PDP'
        , 'VBM'
        ) THEN 'PRO'
END

from table1

SQL Fiddle Demo Sample data