我在桌面应用程序(Windows Forms C#4)中使用MS SQL CE 3.5,并且不太可能更改数据库。我有时会在Compact Edition的更有限的SQL语法中打砖墙。
目前我需要两个查询,但希望将它们合并为一个:
UPDATE manganames SET display = 0 WHERE id = @ id AND display = 1
UPDATE manganames SET display = 1 WHERE id = @ id AND name = @ name
显示是数据类型BIT
谢谢,我的问题很简短而不是完全清楚
最终查询如下
UPDATE manganames
SET display = CASE WHEN name = @ name THEN 1 ELSE 0 END
WHERE id = @ id
PS我的stackoverflow格式化技巧很糟糕。
答案 0 :(得分:0)
这是你可以尝试的东西
UPDATE manganames
SET display =
CASE WHEN display = 1 then 0
WHEN name = @name
ELSE display
END
WHERE id = @id
有几个条件你不解释。首先,当display = 1和name = name时会发生什么?根据您显示的内容,将分配0和1。在我的示例中,将应用第一个WHEN子句,并将指定0来显示。
其次,显示<>时会发生什么1和名称<> @名称?在我的例子中,ELSE条件会将显示分配给显示,这样就不会有任何变化。