0

我在 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。我究竟做错了什么?

什么是我的查询不起作用?

4

2 回答 2

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
于 2012-10-11T14:39:53.037 回答
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 演示示例数据

于 2012-10-11T14:44:21.907 回答