此表格为“Trade
”,其中包含“call
”列,从CSV加载时,调用包含values(C,P)
我想从java程序更新Trade,if call='C' then call='CE'
和
if call='P' then call='PE'
我发现这可以使用2个查询来完成。像这样
update Trade set call='CE' where call='C';
update Trade set call='PE' where call='P';
无论如何这可以在单个查询中完成吗?
答案 0 :(得分:7)
CALL
是保留的关键字,需要转义。
UPDATE Trade
SET `CALL` = CASE WHEN `Call` = 'C' THEN 'CE'
WHEN `Call` = 'P' THEN 'PE'
ELSE `CALL` END
WHERE `CALL` IN ('C','P')
答案 1 :(得分:5)
我看到的最短解决方案:
UPDATE Trade
SET call = CONCAT(call,'E')
WHERE call IN ('C', 'P');
答案 2 :(得分:4)
是的,您可以使用CASE
表达式在一个查询中执行此操作。像这样:
update Trade
set call = CASE
WHEN callputtype='C' THEN 'CE'
WHEN callputtype='P' THEN 'PE'
END
where callputtype IN ('c', 'P');