使用UPDATE单个查询“单选按钮”选择行为

时间:2011-02-19 14:32:22

标签: sql sql-server-ce sql-update

我在桌面应用程序(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格式化技巧很糟糕。

1 个答案:

答案 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条件会将显示分配给显示,这样就不会有任何变化。