2016-05-09 5 views
-1

私はこのようなcase文を書くことを試みています。誰かが構文を助けることができますSQLでCASEを使用して更新文

UPDATE A 
CASE WHEN ATTDESC = 'ABC' THEN SET A.DESC = PG.VAL + ' - ' + LD.DESC + ' - ' + GH.PL3NAME 
    WHEN ATTDESC = 'DEF' THEN SET A.DESC = PG.VAL + ' - ' + LD.DESC + ' - ' + GH.PL3NAME 
END 
FROM ATTR A, PRODUCT PG, Global GH, Look LD 
+0

「ケース」は「IF」ではありません。どのrdbms(f.e。MySql、Oracle、SQL-Server)を使用していますか? –

+0

そのSQLは本当にこのASAP非常にひどく助けを必要とします:( – Newbie

+0

もう1つの考えでは、もし私がここで他に使用することができますか? – Newbie

答えて

0

CASE式はフローを制御しません。単一の値を返します。だからこのようなもの:

... 
SET [DESC]=CASE [ATTDESC] 
    WHEN 'ABC' THEN PG.VAL + ' - ' + LD.DESC + ' - ' + GH.PL3NAME 
    WHEN 'DEF' THEN PG.VAL + ' - ' + LD.DESC + ' - ' + GH.PL3NAME 
    ELSE [DESC] 
END 
FROM 
... 
+0

申し訳ありません私はあなたを得ることはありません – Newbie

+0

私たちはTHEN節にセットを使用しますか? – Newbie

+0

いいえ、 THEN句は、単一の値を返すためにのみ使用できます。 –

関連する問題