MySQL补齐函数LPAD和RPAD之SQLite解决方案

news2024/11/15 22:32:58

        工作中经常需要对数据进行清洗,并对个别字段进行格式化处理,像 字符串左右补齐。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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/133161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阶段性回顾(5)与一些题目实例(数组合并,有序判断,删除元素,进制问题等)

tips 1. 内存栈区的使用习惯是先使用高地址,再使用低地址。并且你还要清楚:随着数组下标的增大,其元素的地址也是在不断变高;对于一个占多个内存单元的变量进行取地址,取出来的是其所占内存空间最低地址的内存单元的地…

Python内存机制 -- = 赋值操作

Python内存机制 python的万物皆对象可不只是说说而已。 1. 预备知识: id():可以将id()理解为C语言中的*,其返回当前对象在内存中的地址。 int p id(object) # id函数返回对象object在其生命周期内位于内存中的地址,id函数的参数…

Python数据分析案例18——化学分子数据模型(机器学习分类问题全流程)

1. 引言 1.1设计背景 对分子进行分类,对于筛选特定疾病的候选药物是至关重要的。传统的机器学习算法可以对分子进行分类,但是分子不能直接作为机器学习模型的输入,需要进行大量的实验从分子中得到一系列的分子特性。将分子特征使用数字化进…

47-Jenkins-终止构建并设置构建结果

终止构建并设置构建结果前言获取构建结果终止构建并设置构建状态权限问题解决前言 本篇来学习Jenkins终止构建的方法,使用场景:根据前一个构建状态,判断当前构建是否运行 获取构建结果 上次构建结果:currentBuild.getPreviousB…

【LeetCode题目详解】(五)144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历、104.二叉树的最大深度、110.平衡二叉树

目录 一、力扣第144题:二叉树的前序遍历 1.解题思路 2.解题代码 二、力扣第94题:二叉树的中序遍历 三、力扣第145题:二叉树的后序遍历 四、力扣第104题:二叉树的最大深度 1.解题思路 2.解题代码 五、力扣第110题&#xff1…

抖音直播间弹幕rpc学习

目标url 随便找个直播间即可。 https://live.douyin.com/198986091107 接口分析 首先并没有在xhr下找到对应的接口 因为采用了websocket来传输信息。切换到ws即可看到 消息下,可以看到16进制的数据在源源不断地增加。 那么我们只要找到反序列化后的数据&…

在wsl下开发T113的主线linux(4)-编译kernel

接下来编译kernel,编译过程可能会出现缺少命令的报错,大概是下面这几个 sudo apt update sudo apt install flex bison bc libncurses-dev 目前linux主线的最新版本并没有适配t113的相关外设驱动,虽然能启动并串口打印,但其他的…

在单选按钮上实现双击效果

如果想让你的用户体验更加极致,可以考虑在对话框上的单选按钮上实现双击效果,以此作为”选中 确定”(或者是选中 下一页,或者是选中 完成等)的快捷方式。 看看我们需要怎么做 下面是一个对话框模板以及它对应的对…

3.服务注册和远程调用-Nacos[作为注册中心]

1.SpringCloud Alibaba-Nacos[作为注册中心] Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理 平台。他是使用 java 编写。需要依赖 java 环境 Nacos 文档地址: https://nacos.io/zh-cn/docs/quick-start.html 下载 nacos-server https://…

HCIA作业整理(2022.12.29)

一、特殊的ip地址: 1.环回地址:127.0.0.1-127.255.255.254 2.受限广播地址:255.255.255.255 3.直接广播地址:主机位全为1、192.168.1.X/24 --- 192.168.1.255 4.网段:主机位全0 --- 192.168.1.X/24 --- 192.168.1…

STL剖析(一):体系结构概览

一.什么是STL? STL全称是Standard Template Library,它属于泛型编程的范畴(泛型编程的代表性作品),泛型编程旨在编写独立于数据类型的代码,也就是说代码中的数据类型只有在编译的时候才会确定,否则为一个…

网络协议(一):基本概念、计算机之间的连接方式

网络协议系列文章 网络协议(一):基本概念、计算机之间的连接方式 目录一、网络互联模型二、计算机之间的通信基础1、计算机之间的连接方式 - 网线直连2、计算机之间的连接方式 - 同轴电缆(Coaxial)3、计算机之间的连接方式 - 集线器(Hub)4、计算机之间的连接方式 -…

vue3 antd项目实战——Form表单的重置与重置【resetFields重置表单未生效(手写重置函数)】

vue3 antd项目实战——resetFields重置表单无效【手写重置函数重置表单数据】关于form表单的文章合集场景复现原因分析解决方案(手写清空函数)关于form表单的文章合集 文章内容文章链接Form表单提交和校验https://blog.csdn.net/XSL_HR/article/details/128495087?spm1001.20…

Hadoop高手之路5-MapRreduce

文章目录Hadoop高手之路5-MapReduce分布式计算框架一、MapReduce概述1.MapReduce核心思想2.MapReduce编程模型3.MapReduce编程实例——词频统计二、MapReduce的工作原理1. MapReduc的工作过程1) 分片、格式化数据源2) 执行MapTask3) 执行Shuffle4) 执行ReduceTask5) 写入文件2.…

5_虚拟机栈

虚拟机栈概述 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指…

QML教程(一)

目录 一、导入 二、对象声明 三、对象属性 1.声明对象属性 2.信号属性 3.方法属性 4.附加属性略 5.枚举属性 6.对象属性赋值 四、自定义对象 一、导入 模块导入 语法&#xff1a; import <ModuleIdentifier> [<Version.Number>] [as <Qualifier>…

【文献阅读】能源受限的无人机和移动充电站进行持续监控的稳健规划

标题&#xff1a;Robust Planning for Persistent Surveillance With Energy-Constrained UAVs and Mobile Charging Stations 作者&#xff1a;Xiaoshan Lin, Yasin Yazıcıo˘glu , and Derya Aksaray 来源&#xff1a;IEEE ROBOTICS AND AUTOMATION LETTERS 摘要 本文考虑…

DO 语句

DATA MYCLASS;SET SASHELP.CLASS;IF WEIGHT<120 THEN NOTE Normal;ELSE DO;NOTE Heavy;/* 赋值成缺失值 */WEIGHT.;END; RUN;PROC PRINT; RUN; DATA B;DO k 11 TO 0 BY -3;IF k < 5 THEN i k;ELSE i k - 1;OUTPUT;END; RUN;PROC PRINT; RUN; DO WHILE:只要条件满足&am…

Python异常处理(七)

python学习之旅(七) &#x1f44d;查看更多可以关注查看首页或点击下方专栏目录 一.什么是异常 程序运行的过程中出现了错误 定义&#xff1a;在程序运行中,检测到一个错误&#xff0c;程序中止运行并且出现了一些错误的提示,也称作BUG 例如&#xff1a;读取一个不存在的文件f…

[操作系统]进程

目录1.进程的概念2.如何管理进程3.进程的调度4.并行和并发5.进程调度需要使用的属性6.进程之间的通信7.进程和线程的区别操作系统是一个软件,对下要管理好各种硬件设备,对上要给各种软件提供稳定的运行环境.这篇博客主要讲解操作系统如何管理进程。 1.进程的概念 进程就是跑起…