update contentpagenav
set active = case
when active = 0 then active = 1
when active = 1 then active = 0
end
我收到以下錯誤有條件更新SQL查詢錯誤
消息102,級別15,狀態1,行3 附近有語法錯誤 '='。
update contentpagenav
set active = case
when active = 0 then active = 1
when active = 1 then active = 0
end
我收到以下錯誤有條件更新SQL查詢錯誤
消息102,級別15,狀態1,行3 附近有語法錯誤 '='。
沒有必要重新分配你的活動,那麼「set active =」就是這樣做的。
update contentpagenav
set active = case
when active = 0 then 1
when active = 1 then 0
end
謝謝。有效! – 2011-05-12 16:01:41
的easist辦法做到這一點不符合的情況下:
UPDATE contentpagenav SET active = 1-active;
如果你簡化你的問題(你需要使用CASE出於某種原因):
UPDATE contentpagenav SET active = CASE active
WHEN 1 THEN 0
ELSE THEN 1
END;
如果超過2種可能的活動值:
UPDATE contentpagenav SET active = CASE active
WHEN 1 THEN 0
WHEN 0 THEN 1
WHEN 2 THEN ...
ELSE ...
END;
-1對於一個不太明確的答案,很難找出你正在解釋的內容。 – dnolan 2011-05-13 16:04:09
不要暴躁,但我並不認爲這4個詞將是一個挑戰。假設他有唯一的值是0和1,這需要1並將其變成0(1-1 = 0)並將0變成1(1-0 = 1)。如果他有其他的值,他可以通過引入WHERE子句來將其限制爲<2或顯式爲0或1.據我所知,CASE語句很慢,因此在避免它們更簡單的情況下,應該這樣做。抱歉沒有阻止其他兩個...我懇求無知如何正確設置塊在這裏。預覽按鈕會很好。 – BobB 2011-05-13 18:30:48
我認爲你想要大寫和多行代碼塊。我認爲這些都很煩人:P特別是多行代碼,這在Linux命令行SQL接口中不容易編輯;)在任何情況下,固定在上面 – BobB 2011-05-13 18:44:23
* *什麼**數據庫,版本,版本? – 2011-05-12 16:00:17