sql的case when和map.get()

zhanxing134 2017-01-09 04:23:01
数据导出,需要把其中一些字段的数据做转换,比如A---->1,B--->2。目前有2想到的2种思路:
1、sql的case when
case Column_name
when 'A' then '1'
when 'B' then '2'
2、用properties或者map
把对应码放进properties文件:A=1
或map.put('A','1')
问题是不知它们那种方法更优?感觉第二种更易维护
希望各位给点经验意见
...全文
202 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
___d 2017-01-09
  • 打赏
  • 举报
回复
少就直接case when 多了就考虑新建表 不都这样么。不然多了你java代码得写多少
soton_dolphin 2017-01-09
  • 打赏
  • 举报
回复
引用 6 楼 zhanxing134 的回复:
[quote=引用 2 楼 soton_dolphin 的回复:] 当然是第一种比较容易维护和理解啊,速度也快啊
问题是要转换的比较多怎么办?[/quote] 建一个表,把转换的值写进表里,然后inner join 这个表
zhanxing134 2017-01-09
  • 打赏
  • 举报
回复
引用 4 楼 chengye321 的回复:
[quote=引用 3 楼 zhanxing134 的回复:] 如果是量比较大呢?比如我有个城市码转化130个,也要写130个when then?
那就新建一个表,字段有ID和NAME,类似字典的方法维护,取的时候就2个表关联就行了。[/quote] 我也想过这个办法,但是感觉改动就大了
zhanxing134 2017-01-09
  • 打赏
  • 举报
回复
引用 2 楼 soton_dolphin 的回复:
当然是第一种比较容易维护和理解啊,速度也快啊
问题是要转换的比较多怎么办?
zhanxing134 2017-01-09
  • 打赏
  • 举报
回复
引用 1 楼 chengye321 的回复:
我个人就用第一种了感觉比较直观
你when then最多写了多少?
斯卡洛特 2017-01-09
  • 打赏
  • 举报
回复
引用 3 楼 zhanxing134 的回复:
如果是量比较大呢?比如我有个城市码转化130个,也要写130个when then?
那就新建一个表,字段有ID和NAME,类似字典的方法维护,取的时候就2个表关联就行了。
zhanxing134 2017-01-09
  • 打赏
  • 举报
回复
如果是量比较大呢?比如我有个城市码转化130个,也要写130个when then?
soton_dolphin 2017-01-09
  • 打赏
  • 举报
回复
当然是第一种比较容易维护和理解啊,速度也快啊
斯卡洛特 2017-01-09
  • 打赏
  • 举报
回复
我个人就用第一种了感觉比较直观

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧