工作中经常需要对数据进行清洗,并对个别字段进行格式化处理,像 字符串左右补齐。MySQL数据库自带有LPAD()、RPAD(),而SQLite数据库没有的相应函数,需要自己转换。
目录
1、MySQL数据库
1.1、MySQL左右补全函数
1.2、实践验证
2、SQLite数据库
2.1、SQLite左/右补全处理
2.2、实践验证
3、数据库开发客户端IDE
3.1、DBeaver下载与安装
3.2、HeidiSQL下载与安装
运行环境:
- Windows-10-专业版-21H2
- DBeaver Community-22.3.1.202212251901
- HeidiSQL-12.3-x64
- MySQL-5.7.36
- SQLite-3.40.0
1、MySQL数据库
工作中经常需要对数据进行清洗,并对个别字段进行格式化处理。像 字符串左右补齐,默认MySQL中的补全函数 LPAD()、RPAD() 可以满足需求。
1.1、MySQL左右补全函数
- 左补全函数:LPAD(字符串, 长度, 补齐字符)
- 右补全函数:RPAD(字符串, 长度, 补齐字符)
举例:输出长度为 6 位的字符串,当长度不满足6位时,在其 左边 或 右边 补齐相应个数的 0
SELECT
-- 长度6,不足 左补 0
LPAD('数字1', 6, '0'),
LPAD('数字12', 6, '0'),
LPAD('数字123', 6, '0'),
-- 长度6,不足 右补 0
RPAD('数字1', 6, '0'),
RPAD('数字12', 6, '0'),
RPAD('数字123', 6, '0')
;
1.2、实践验证
2、SQLite数据库
像 MySQL 数据库自带的 LPAD()、RPAD() 补全函数,很遗憾在 SQLite 这个轻量级数据库中没有,需要自己写替代方案。
2.1、SQLite左/右补全处理
举例:输出长度为 6 位的字符串,当长度不满足6位时,在其 左边 或 右边 补齐相应个数的 0
SELECT
-- 长度6,不足 左补 0
SUBSTR('000000' || '数字1' , -6),
SUBSTR('000000' || '数字12' , -6),
SUBSTR('000000' || '数字123' , -6),
-- 长度6,不足 右补 0
SUBSTR('数字1' || '000000' , 1, 6),
SUBSTR('数字12' || '000000' , 1, 6),
SUBSTR('数字123' || '000000' , 1, 6)
;
注意:本次测试的 数据库字符集为 UTF-8,每个字符或汉字 占用 1 个位。
2.2、实践验证
3、数据库开发客户端IDE
3.1、DBeaver下载与安装
打开DBeaver官网,下载 Download DBeaver Community 对应版本的安装包。
3.2、HeidiSQL下载与安装
打开HeidiSQL官网,下载 Download HeidiSQL 对应版本的安装包。
附录:
- sql - How to emulate LPAD/RPAD with SQLite - Stack Overflow