sql:
百万数据量 1改成2,2改成1 (只能用一条sql语句)
这个是面试官的问题,我回答 : 用case when。
他听完 强调了下 百万级数据。
有大佬 有别的答案吗?
我是用的oracle
update temp_test set aa=mod(aa,2)+1
不过有个问题,这个字段不能有其他的值
update 表 set 字段=(-1*(字段*2-3)+3)/2
如果字段=1
那么(-1*(1*2-3)+3)/2=2
如果字段=2
那么(-1*(2*2-3)+3)/2=1
这个办法因为不使用函数,所以兼容性比较好。
oracle
update table set col = decode(col, 1, 2, 2, 1, col);