SQL中的case when then else语句用法
在做数据迁移的时候,碰到了需要转换的枚举类型,为了在sql中直接做转换,想到了用case when then else语句 例如有下面列表中的不同枚举值,需要从原来的库中迁移到目标库中,但是目标库和原来的库存在枚举值的差异
字段:证件照类型 原表中的枚举值:01-身份证 02-护照 04-军官证 03:港澳台通行证 05-回乡证 06-工商登记号 09-其他 目标表中的枚举值:00:身份证 01:护照 02:军官证 03:士兵证 04:回乡证 05:户口本 06:外国护照 07:其他 08:暂住证 09:警官证 10:文职干部证 11:港澳同胞回乡证 则需要做的转换是: 01-身份证 --》00 02-护照 --》01 04-军官证 --》02 03:港澳台通行证 --》11 05-回乡证 --》04 06-工商登记号 --》07 09-其他 --》07
在此就可以用case when then else语句,具体的转换语句是
CASE A .ID_TYPE WHEN 01 THEN 00 WHEN 02 THEN 01 WHEN 03 THEN 11 WHEN 04 THEN 02 WHEN 05 THEN 04 WHEN 06 THEN 07 WHEN 09 THEN 07 ELSE END AS legal_cert_type,
总结: 使用格式如下:
case 原表中的字段 when 原来的值1 then 新的值1 when 原来的值2 then 新的值2 when 原来的值3 then 新的值3 when 原来的值4 then 新的值4 else end as 新表中的字段
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
IT各类程序员详细学习路线图