在项目中经常遇到需要左补零,右补零的情况,在DB2实验环境中展示

1、左补零
(1)数字左补零,数字长度不定
用right(digits(cast(expression as bigint)),NUM)能实现,

注意:
①right(expression,NUM):表示从"expression"的右侧第一个字符取,取满NUM位,若不足NUM位左侧补零
②digits():返回SMALLINT、INTEGER、BIGINT或者DECIMAL的字符串值
其中smallint:返回5位字符串,INTEGER返回10位字符串,BIGINT返回19位字符串,DECIMAL返回31位字符串
③cast(expression as bigint):强制类型转换
④若NUM>bigint的长度,则右侧补空格

举例展示:

select
right(digits(cast(12345 as smallint)),20) SMALL_Value,Length(right(digits(cast(12345 as smallint)),20)) Length_Value,/*smallint占5位,Length_Value=20,
digits(cast(12345 as smallint))不足20位的部分右侧用空格补齐*/
right(digits(cast(12345 as integer)),20) integer_Value,Length(right(digits(cast(12345 as integer)),20))integer_Length,/*INTEGER占10位,integer_Length=20,
digits(cast(12345 as integer))不足20位的部分右侧用空格补齐*/
right(digits(cast(12345 as bigint)),20) bigint_Value,Length(right(digits(cast(12345 as bigint)),20))bigint_Length,/*BIGINT占10位,bigint_Length=20,
digits(cast(12345 as bigint))不足20位的部分右侧用空格补齐*/
from syscat.tables fetch first 1 rows only;

(2)字符左补零,字符长度不定
用right(digits(cast(expression as varchar(NUM_IN))),NUM)能实现,
注意:
①NUM_IN>expression的长度,防止截断
②NUM>NUM_IN的长度,防止截断

2、右补零
(1)数字右补零,数字长度不定
(2)字符左补零,字符长度不定

右补零用DB2中已有的函数不好实现,现编写一SQL函数,在项目中可拿来使用

--/
CREATE function RightComZero(In_Varchar(1800),Num_Len integer) RETURNS VARCHAR(1800) LANGUAGE SQL
BEGIN ATOMIC
DECLARE Varchar_Length Bigint;
DECLARE MID_Varchar Varchar(1800);
DECLARE FIN_Varchar Varchar(1800);
DECLARE DIFF_Length Bigint; SET Varchar_Length =0;
SET DIFF_Length =0; SET MID_Varchar =Rtrim(Ltrim(In_Varchar));
SET Varchar_Length =Length(MID_Varchar );
IF(Varchar_Length =0 or Varchar_Length >Num_Len) THEN
SET FIN_Varchar ='!';
return FIN_Varchar ;
ELSE
SET DIFF_Length =Num_Len-Varchar_Length ;
SET FIN_Varchar =MID_Varchar ;
END IF;
WHILE DIFF_Length >0 DO
SET FIN_Varchar =FIN_Varchar ||'0';
SET DIFF_Length =DIFF_Length -1;
END WHILE;
RETURN FIN_Varchar ;
END
/

欢迎用本博客中的方法,解决项目中的补零需要

整理DB2左补零,右补零的方法的更多相关文章

  1. Oracle 给字符串补空格、补0

    利用lpad().RPAD()函数来实现给字符串补空格或补0的功能: 一.lpad()lpad函数将左边的字符串填充一些特定的字符其语法格式如下:lpad(string,n,[pad_string]) ...

  2. 音频采样中left-or right-justified(左对齐,右对齐), I2S时钟关系

    音频采样中left-or right-justified(左对齐,右对齐), I2S时钟关系 原创 2014年02月11日 13:56:51 4951 0 0 刚刚过完春节,受假期综合症影响脑袋有点发 ...

  3. 最常用SQL joins:内连接(交集)、左外连接、右外连接、左连接、右连接、全连接(并集),全外连接

    1.内连接.两个表的公共部分用Inner join,Inner join是交集的部分. Select * from TableA A inner join TableB B on A.key=B.ke ...

  4. css关于控制div靠左或靠右的排版布局

    关于控制div靠左或靠右的排版布局,我整理三种平时用到的css属性小知识(元素模块靠左或靠右排版): 1.float属性(float 属性定义元素在哪个方向浮动) 值:left(元素向左浮动).rig ...

  5. [iOS]技巧集锦:UITableView自定义Cell中的控件无法完全对齐Cell的左边界和右边界

    这是个很诡异的问题,由于一些特殊需求,我的TableView的Cell的背景色是透明,其中的控件会有背景色,第一个控件和最后一个控件我都用IB自动设了约束,对齐Cell的左边界和右边界,但是自动约束很 ...

  6. c++左值和右值

    c++编程中如果出现把一个函数的返回值.强行转化后的对象 作为函数的参数传进去时,编译器会报错的情况.这时候就该注意了,你需要把该函数的参数类型前加上const修饰. 原因在于c++的左值和右值有所区 ...

  7. Oracle 左连接、右连接、全外连接、(+)号作用

    分类: Oracle Oracle  外连接 (1)左外连接 (左边的表不加限制)       (2)右外连接(右边的表不加限制)       (3)全外连接(左右两表都不加限制) 外连接(Outer ...

  8. 【转】C#中如何实现左截取和右截取字符串

    使用C#语法编写程序时,我们需要截取一个字符串左边或右边的若干个字符,该如何操作呢?在VB中可以使用left或right函数实现,C#中没有提供这样的函数呢?答案是没有.但是,C#中提供Substri ...

  9. c++ 左值 和 右值

    什么是lvalue, 什么是rvalue? lvalue: 具有存储性质的对象,即lvalue对象,是指要实际占用内存空间.有内存地址的那些实体对象,例如:变量(variables).函数.函数指针等 ...

  10. C++中的左值与右值(二)

    以前以为自己把左值和右值已经弄清楚了,果然发现自己还是太年轻了,下面的这些东西是自己通过在网上拾人牙慧,加上自己的理解写的. 1. 2. 怎么区分左值和右值:知乎大神@顾露的回答. 3. 我们不能直接 ...

随机推荐

  1. Vulhub靶场的搭建

    Vulhub靶场的搭建(基于centos7) 1>简述 很多人在搭建Vulhub靶场的时候,可能也搜到过许多的文章,但是大多数的文章只是有一个流程,对其中的原理,步骤没有进行详细的说明,这也就导 ...

  2. [ARM汇编]计算机原理与数制基础—1.1.2 二进制与十进制数制转换

    在计算机中,我们通常使用二进制数制来表示数据,因为计算机的基本电平只有两种状态:高电平(通常表示为 1)和低电平(通常表示为 0).而在我们的日常生活中,我们习惯使用十进制数制.为了方便理解,我们需要 ...

  3. zabbix监控服务器php

    1 修改php配置文件 /apollo/env/php/thirdparty.php-7.3/etc/php-fpm.conf,添加pm.status pm.status_path = /phpfpm ...

  4. 1. SpringMVC 简介

    1. 什么是 MVC ‍ MVC是一种软件架构的思想,将软件按照模型.视图.控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 ‍ JavaBean分为两类: 一类称为实 ...

  5. 从数据库中读取数据并写入到Excle电子表格之1

    //获取数据 using (SqlDataReader reader = Alian_SQL_Helper.SQL_Helper .ExecuteReader( "select CC_Aut ...

  6. git报错:SSL certificate problem: unable to get local issuer certificate

    原因:在windows系统中git没有获取到ssl证书 解决方案 输入以下命令: git config --global http.sslBackend schannel 之后再执行操作就可以啦 另: ...

  7. C#.NET 国密SM4对称加解密 与JAVA互通 ver:20230731

    C#.NET 国密SM4对称加解密 与JAVA互通 ver:20230731 .NET 环境:.NET6 控制台程序(.net core). JAVA 环境:JAVA8,带maven 的JAVA控制台 ...

  8. Tibos.Devops项目介绍

    诞生背景 随着微服务的普及,更多的企业选择迁移到云,传统的部署方式已经无法满足需求,市面上devops产品也应运而生,结合自己使用的经验,也制作了一款同类产品,并开源出来,与大家一起探讨学习 前置条件 ...

  9. java file I/O流

    一.File的简介:(java.io包) 生活中的文件: (1)文件的作用:持久化(瞬时状态的对立面状态) (1)文件的定义:一堆数据的集合 (2)文件存储的位置:磁盘,硬盘,软盘,U盘等等 计算机中 ...

  10. 11、Spring之基于注解的AOP

    11.1.环境搭建 创建名为spring_aop_annotation的新module,过程参考9.1节 11.1.1.配置打包方式和依赖 注意:AOP需要在IOC的基础上实现,因此需要导入IOC的依 ...