在数据建模时,经常需要基于原始数据列,创建指标列,需要对列数据进行批量赋值。
赋值操作并不会改变表结构,所以不使用ALTER TABLE,而是使用UPDATE来实现。
UPDATE user_model
SET car_gear =
(case WHEN preSpec LIKE "%手动%" THEN "手动"
WHEN preSpec like "%自动%" THEN "自动"
ELSE NULL
END)
这段代码实现了从原始列preSpec中抽取出汽车档位是自动,还是手动的指标列。
再比如,根据特定的条件,从preSpec字段中抽取车型指标,赋值给car_model字段。
UPDATE user_model
SET car_model=
(CASE WHEN POSITION("型" IN preSpec)>0 THEN substr(preSpec,POSITION("型" IN preSpec)-2,2)
WHEN POSITION("版" IN preSpec)>0 THEN substr(preSpec,POSITION("版" IN preSpec)-2,2)
ELSE NULL
END)
扫描下方二维码,添加微信公众号“数据分析师手记”