最近做项目时遇到的库存方面的问题:(数据库为oracle)
库存的位置的是“xx-xx”的形式存储的(x为数字),直接查询肯定是没排序的;
一般查询时是将varchar2用to_number()修饰,这样就能查询,可是很明显to_number()没法转换这个数据,因为中间带“-”
so,我的解决方法是:
将该字段用substr(‘字段名’,开始截取位置,截取长度)截取前2,转成to_number()排序,再截取后2位排序
结果:问题解决
使用sql做统计:
之前做统计时,将页面传过来的值赋值后,获取list实体,for循环做统计数据;
突然想到做统计其实是一种独立的行为,与业务操作无任何联系,可以直接写一个sql命令让数据库自己做统计;
首先让库xx-98来专门当统计位置,
update 表名 set 字段名 = (select sum(字段名) from 表名 where not 字段名 likes '%98' ) where 字段名 = ‘xx-98’;