简单SQL实现数据补零操作
伴侣们,我们在对数据库字段举办处理赏罚时,常常会把整数逼迫转换为varchar范例,数字自己可分巨细,但转换为字符串之后,原本的巨细观念就被倾覆了。 好比88和800两个整数,在作为数字范例时,800大于88是毋庸置疑的,,但转换为字符串后,'800'和'88'的巨细就被倾覆了,我们就做一个小尝试,权当做一个验证,剧本如下:
运行功效如下: 着实很轻易领略,这是由于varchar巨细的较量是从第一位开始,较量其ascii码巨细,呈现第一个大于另一个时,那整个varchar的巨细就这样定了的。 基于这样的逻辑,我们在将int转为varchar时,也许要用来排序可能与其余字段举办归并,假如巨细可能次序紊乱了,对我们的操纵也许就会有影响,那这种环境应该如那里理赏罚呢? 着实很简朴,我们可以牢靠转换后的位数,不足位数的在左侧补零即可。好比我们牢靠7位,“88”对应的就是“0000088”、“800”对应的就是“0000800”,这时辰再较量可能排序,就不会乱了。 那怎样补零呢?原理很是简朴,我们先用6个零构成的字符串加上数字转成的字符串,然后再行使right函数截取最右边的7位就行了,参看下面的剧本:
这个要领是最简朴的,假如您认为不外瘾,也可以计较下int转为varchar后的长度,按照长度再按照replicate函数制造缺失的零即可,参看下面的剧本:
明明看上去第一种要领更直观。假如您还嫌不外瘾,您也可以行使case语句判定差异长度直接补差异位数的零,参看下面的剧本:
这明明有点作了,信托没几小我私人会这么干,但这种要领也是可行的。 各类方法处理赏罚的结果参看下图: 同理,假如您想在右边补零,原理也是一样的,这里要用到left函数,好比可以这样:
不外是在后头补零,从左边截取罢了。 但愿对您有所辅佐! 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |