Sql server 2005 在更新中使用IF..ELSE(SQL server 2005和/或ACCESS 2007)
我需要设置如下查询:Sql server 2005 在更新中使用IF..ELSE(SQL server 2005和/或ACCESS 2007),sql-server-2005,Sql Server 2005,我需要设置如下查询: UPDATE XXXXXX IF column A = 1 then set column B = 'Y' ELSE IF column A = 2 then set column C = 'Y' ELSE IF column A = 3 then set column D = 'Y' 诸如此类 我可以使用多个查询来实现这一点,但我想知道,我是否可以用一条语句来实现这一点。这应该行得通 update table_name set column_b = case
UPDATE XXXXXX
IF column A = 1 then set column B = 'Y'
ELSE IF column A = 2 then set column C = 'Y'
ELSE IF column A = 3 then set column D = 'Y'
诸如此类
我可以使用多个查询来实现这一点,但我想知道,我是否可以用一条语句来实现这一点。这应该行得通
update table_name
set column_b = case
when column_a = 1 then 'Y'
else null
end,
set column_c = case
when column_a = 2 then 'Y'
else null
end,
set column_d = case
when column_a = 3 then 'Y'
else null
end
where
conditions
问题是你为什么要这样做……你可能想重新考虑数据模型。你可以用你想要的任何东西替换
null
。是的,你可以使用CASE
UPDATE table
SET columnB = CASE fieldA
WHEN columnA=1 THEN 'x'
WHEN columnA=2 THEN 'y'
ELSE 'z'
END
WHERE columnC = 1
正如我在SQL 2008中尝试的那样,还有两个额外的“集合”。谢谢你的回答有人能告诉我fieldA应该在这里吗