我可以在UPDATE
子句中使用多個WHEN
條件來更新單個列。SQL更新查詢
我想更新其列ID和名稱表的表:
是下面的查詢是否正確?
UPDATE TABLE
SET id = CASE id
WHEN id IN (2, 3, 4) THEN 1
WHEN id= 5 THEN 8
WHEN id IN(9, 7) THEN 6
WHERE name = 'abc'
我可以在UPDATE
子句中使用多個WHEN
條件來更新單個列。SQL更新查詢
我想更新其列ID和名稱表的表:
是下面的查詢是否正確?
UPDATE TABLE
SET id = CASE id
WHEN id IN (2, 3, 4) THEN 1
WHEN id= 5 THEN 8
WHEN id IN(9, 7) THEN 6
WHERE name = 'abc'
是的,這是允許的,但CASE
後刪除ID
。而且,您需要END
您的情況。
UPDATE TABLE
SET ID = CASE
when ID in (2,3,4)
then 1
when ID = 5
then 8
when ID in (9,7)
then 6
END
where NAME = 'abc'
CASE有兩種替代語法。如上所述,另一個是要比較對他人的一個值,就像這樣:
UPDATE TABLE
SET ID = CASE ID
when 2
then 1
when 5
then 8
when 7
then 6
END
where NAME = 'abc'
案例有兩個版本:1
版本:
Case Id
When 2 Then 1
When 3 Then 1
When 4 Then 1
When 5 Then 8
When 7 Then 6
When 9 Then 6
End
2版:
Case
When Id in (2,3,4) Then 1
When Id = 5 Then 8
When Id in (9,7) Then 6
End
兩個以上是equivilent
感謝你們.. :)這真的很有幫助 – 2010-10-06 18:47:32
+1你正在描述[簡單與搜索案例](http://msdn.microsoft.com/en-us/library/ms181765.aspx) – gbn 2010-10-06 18:24:34