0

SQL Server での私のクエリ:

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

これを試して:

ここで Projectgroup_NAM 列はテーブルからのものである必要があります.ここでは、別のテーブルから値を挿入していると思います1

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 に答える
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 に答える