我需要设置如下的查询:
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'
依旧等等......
我可以使用多个查询来执行此操作,但我想知道,如果我只能在1个语句中执行此操作。
答案 0 :(得分:37)
这应该有效
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
。
答案 1 :(得分:6)
是的,您可以使用CASE
UPDATE table
SET columnB = CASE fieldA
WHEN columnA=1 THEN 'x'
WHEN columnA=2 THEN 'y'
ELSE 'z'
END
WHERE columnC = 1
答案 2 :(得分:0)
UPDATE products
INNER JOIN zofertas
ON products.code=zofertas.codigo
SET products.price=zofertas.precio
IF products.price>zofertas.precio