求求,别在sql里格式化数据了

news2024/12/28 19:20:26

shigen之前的文章《为什么我们总是被追赶着走》这篇文章中提到了很多的设计乱象,设计的恶心之处至今让我呕吐。其中的sql我说了动辄上百行,而一些略长的部分竟然就是为了一件事——格式化。我直接一个ca,格式化不能用一个VO去处理吗?后来人改代码,也只能在sql上堆了。

先来看看当时需要的场景,从数据库中存储的number类型读取格式化:

注:数据库:oracle,数据类型:num-> bigDecimal

  1. 格式化成人民币显示
SELECT '¥' || TO_CHAR(12345.67, 'FM9,999,999.99') AS formatted_amount FROM DUAL;
  1. 格式化千分位
SELECT TO_CHAR(12345.67, 'FM9,999,999.99') AS formatted_amount FROM DUAL;

以上就是shigen当时遇到的常见的,换谁在数据库的sql里看到这些都是恶心到家。好好地数据查询和格式化,整成这样!你至少得整一个VO吧,在vo里用工具类格式化不好吗?


希望自此不要再看到这么恶心的代码,也希望不会再写出这样的代码!今天,shigen写了一个工具类,直接拿来就用。代码地址在这里。

先来看看代码怎么写的:

这个工具类就是巧妙的借助于java.text.NumberFormat;里自带的类库进行格式化,在我们的vo进行格式化转换的时候,直接调用方法使用即可。

运行的效果是这样的:

别告诉我说:我传入的数字是9位,变成人民币就两位,元角分整明白再说吧!存储那么的位数,有实际的意义吗?

其实其他的场景也是很类似的,比如时间戳的格式化、日期的格式化、字典的格式化……不要在sql里做了。

shigen在这里也结合chatGPT的分析总结一下:

在 SQL 中进行格式化操作,主要是因为 SQL 是用于数据查询和处理的语言,数据库系统提供了一系列的内置函数和操作符,方便对数据进行处理和转换。

然而,对于一些更加复杂或灵活的格式化操作,SQL 的能力可能受到限制。例如,在 SQL 中对日期进行特定的格式化或对字典进行格式化,可能需要编写复杂的 SQL 语句或嵌套的函数调用。这增加了 SQL 查询的复杂性,导致代码难以理解和维护。

编程语言提供了丰富的库和函数,可以轻松地进行日期时间格式化、字符串格式化等操作。此外,编程语言通常还具有更好的控制流和逻辑处理能力,代码复用能力,使得格式化操作可以更加简洁和可读。

因此,将格式化操作从 SQL 中移至编程语言中,可以使代码更加易读、易维护,并且具备更高的灵活性。


好了,以上就是《求求,别在sql里格式化数据》的全部内容了,觉得不错的话,记得支持一下哈。

shigen一起,每天不一样!

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

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

相关文章

【C++进阶(六)】STL大法--栈和队列深度剖析优先级队列适配器原理

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 栈和队列 1. 前言2. 栈和队列的接口函数熟悉3. …

django 实现:闭包表—树状结构

闭包表—树状结构数据的数据库表设计 闭包表模型 闭包表(Closure Table)是一种通过空间换时间的模型,它是用一个专门的关系表(其实这也是我们推荐的归一化方式)来记录树上节点之间的层级关系以及距离。 场景 我们 …

百度交易中台之内容分润结算系统架构浅析

作者 | 交易中台团队 导读 随着公司内容生态的蓬勃发展,内容产出方和流量提供方最关注的“收益结算”的工作,也就成为重中之重。本文基于内容分润结算业务为入口,介绍了实现过程中的重难点,比如千万级和百万级数据量下的技术选型和…

使用 AI 编程助手 CodeWhisperer,开发如有神助

前段时间体验了chatGPT,听说它可以写代码,结果发现更多的只是一个对答写小作文的百度助手,虽然也能写代码,但不是我想要的,可以在 idea 中可以快速生成代码块的。一个偶然的机会,从微信群里了解到&#xff…

科技云报道:大模型的阴面:无法忽视的安全隐忧

科技云报道原创。 在AI大模型的身上,竟也出现了“to be or not to be”问题。 争议是伴随着大模型的能力惊艳四座而来的,争议的核心问题在于安全。安全有两个方面,一个是大模型带来的对人类伦理的思考,一个是大模型本身带来的隐…

Unity实现设计模式——解释器模式

Unity实现设计模式——解释器模式 解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的模式,现实项目中用得较少。 给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来…

在windows的ubuntu LTS中安装及使用EZ-InSAR进行InSAR数据处理

EZ-InSAR(曾被称为MIESAR,即Matlab界面用于易于使用的合成孔径雷达干涉测量)是一个用MATLAB编写的工具箱,用于通过易于使用的图形用户界面(GUI)进行干涉合成孔径雷达(InSAR)数据处理…

网络基础(了解网络知识的前提)

前言 在正式学习网络之前,我们需要了解的一些关于计算机网络的基本知识,本文主要阐述这些基本知识,带着大家一步一步迈进互联网网络的世界; 一、局域网与广域网的概念 在正式了解这些概念的前提是我们要搞懂网络出现的意义&#x…

Linux高级应用——web网站服务

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 目录 前言 一.Apache 1.Apache介绍 2.Apache的特…

【AI绘画】Stable Diffusion WebUI

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

gitee 远程仓库操作基础(一)

git remote add <远程仓库名> <仓库远程地址> :给远程仓库取个别名,简化一大堆字符串操作 git remote add origin xxx.git :取个Origin名字 git remote -v :查看本地存在的远程仓库 git pull <远程仓库名><远程分支名>:<本地分支名> 相同可取消…

【SpringBoot实践】事务和事务传播机制失效原因正确使用事务的建议

文章目录 1.概述2.事务与事务传播2.1 声明式事务说明2.2.声明式事务失效原因2.3.事务的传播机制2.4.事务传播失效原因 3.事务使用建议4.总结 1.概述 我们在开发工作中经常会使用到事务&#xff0c;来保证数据库做增、删、改操作时的数据一致性&#xff0c;在使用Spring来处理事…

【c语言】通讯录【动态版本:有排序和文件操作】

目录 一、通讯录定义 二、通讯录的实现 1、test.c中菜单的实现 2、通讯录的创建逻辑 3、初始化 4、检查容量和添加 5、查找 6、删除功能 7、修改功能 8、打印 9、查找并打印 10、qsort排序 11、摧毁 12、保存数据到文件 13、从文件中读数据 完整代码&#xff1a; 一、通讯录定…

Windows上安装 Go 环境

一、下载go环境 下载go环境&#xff1a;Go下载官网链接找到自己想下载的版本&#xff0c;点击下载&#xff0c;比如我这是windows64位的&#xff0c;我就直接点击最新的。 二、安装go环境 双击下载的.msi文件 next next 他默认的是c盘&#xff0c;你自己可以改&#xff0c;然…

Android 导入ncnn-android-yolov8-seg : 实现人体识别和人像分割

1. 前言 上篇文章我们在Android中使用OpenCV实现了人脸识别&#xff0c;这篇文章我们使用OpenCVYOLOv8NCNN 来实现人像分割的功能。 首先来看下效果&#xff0c;这里会识别出人体&#xff0c;并会用蓝色的框框出来&#xff0c;并会有标签标注识别出的物体是什么&#xff0c;概…

Python爬虫实战案例——第六例

文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff01;严禁将文中内容用于任何商业与非法用途&#xff0c;由此产生的一切后果与作者无关。若有侵权&#xff0c;请联系删除。 目标&#xff1a;去哪儿网指定城市人气值最高的15个景点评论数据采集 地址&a…

趣解设计模式之《小王的披萨店》

〇、小故事 小王看到最近越来越多的人喜欢吃披萨了&#xff0c;所以&#xff0c;他决定自己也开一个披萨店。最初开的时候&#xff0c;他只提供了一种口味的披萨&#xff0c;因为这样先试试水&#xff0c;看看生意如何&#xff0c;如果生意不好&#xff0c;也可以快速止损。 没…

一道签到题目 签到.zip

一道签到题目 https://www.xuenixiang.com/ctfexercise-competition-589.html 下载附件&#xff1a;签到.zip双击打开zip包。 进行base64转换 在线 Unicode 编码转换 | 菜鸟工具 (runoob.com) 获得压缩包密码&#xff1a;haishi 文字倒序工具,在线文字倒序 (qqxiuzi.cn)

一招根治Windows自带杀毒软件 Microsoft Defender

以毒攻毒&#xff1a;用腾讯电脑管家的文件粉碎机将Microsoft Defender 文件粉碎&#xff0c;再卸载腾讯电脑管家。 整个世界都安静了。 开机任务管理器就能看到 Microsoft Defender 又瞎忙起来了 打开文件位置&#xff1a; 记录下此时该文件的路径&#xff08;保存在记事本里…

使用SPY++查看窗口信息去排查客户端UI软件问题

目录 1、使用SPY查看窗口的信息 2、使用SPY查看某些软件UI窗口用什么UI组件实现的 2.1、查看海康视频监控客户端安装包程序 2.2、查看华为协同办公软件WeLink 2.3、查看字节协同办公软件飞书 2.4、查看最新版本的Chrome浏览器 2.5、查看小鱼易连视频会议客户端软件 2.6…