2017-06-20 8 views
0

setとwhereを使用して1つの列の値を更新したいとします。where句を含む複数のセット

私は

update Students set Studentid =case 
when Studentid=1 then class= 10 
when studentid = 3 then class=9 
when studentid=2 and studentid =4 then class=8 
End 

のようなクエリを作ったが、私はそれが動作していないと思います。それで私を助けてください。

+0

上記のクエリで達成したいことを記述できますか?クエリーは間違っていると思われます。 –

+0

それは 'studentid'か' class'のyopuを変更したいのですか? –

+0

あなたはどのレコードも 'studentid = 2 and studentid = 4'の基準に合致すると思いますか?レコードの「studentid」は、同時に2と4ではなく、2 *または* 4(または別の値)でもかまいません。したがって、「studentid = 2またはstudentid = 4」。 –

答えて

2

私は、これはあなたが言おうとしているものだと思う:

UPDATE Students 
SET class = CASE WHEN Studentid = 1  THEN 10 
       WHEN Studentid = 3  THEN 9 
       WHEN Studentid IN (2, 4) THEN 8 END 
WHERE Studentid IN (1, 2, 3, 4); 

私たちは実際にのみ更新ロジックによって影響を受けるレコードを触れることを確実にするためにWHERE句を追加しました。

+0

これは完璧です。ありがとうございました – Bha15

関連する問題