项目中遇到的sql问题记录
有一张表,表结构及数据如下:
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve001', '2021-02-18 00:00:00', 'tableA', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve002', '2021-02-18 00:05:00', 'tableB', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve002', '2021-02-18 00:05:00', 'tableB', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve003', '2022-05-18 00:05:00', 'tableC', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve003', '2021-03-18 00:05:00', 'tableC', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve003', '', 'tableC', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve004', '', 'tableB', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve004', '', 'tableA', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve005', '2023-02-18 00:05:00', 'tableD', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve005', '2023-03-18 00:05:00', 'tableD', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve006', '', 'tableC', '2024-03-18');
INSERT INTO `test`.`test_approve`(`approve_no`, `tra_date`, `tablename`, `part_dt`) VALUES ('approve006', '2024-03-18 00:05:00', 'tableB', '2024-03-18');

- 根据表名依次排序
SELECT approve_no, tra_date, tablename, part_dt
FROM test_approve
WHERE tablename IN ('tableC', 'tableD', 'tableB', 'tableA')
ORDER BY CASE tablenameWHEN 'tableC' THEN 1WHEN 'tableD' THEN 2WHEN 'tableB' THEN 3WHEN 'tableA' THEN 4ELSE 5 -- 处理其他表名END;

- tra_date 不为空(‘’)
SELECT approve_no, tra_date, tablename, part_dt
FROM test_approve
WHERE tablename IN ('tableC', 'tableD', 'tableB', 'tableA')AND tra_date <>''
ORDER BY CASE tablenameWHEN 'tableC' THEN 1WHEN 'tableD' THEN 2WHEN 'tableB' THEN 3WHEN 'tableA' THEN 4ELSE 5 -- 处理其他表名END;

- 遇到相同的approve_no,取tra_date最大的
SELECT approve_no, tra_date, tablename, part_dt
FROM (SELECT approve_no, tra_date, tablename, part_dt,ROW_NUMBER() OVER (PARTITION BY approve_no ORDER BY tra_date DESC) AS rnFROM test_approveWHERE tablename IN ('tableC', 'tableD', 'tableB', 'tableA')-- AND tra_date IS NOT NULL--AND tra_date <>''
) sub
WHERE rn = 1
ORDER BY CASE tablenameWHEN 'tableC' THEN 1WHEN 'tableD' THEN 2WHEN 'tableB' THEN 3WHEN 'tableA' THEN 4ELSE 5 -- 处理其他表名END;
- 相同的approve_no,优先取tableC,tableD,tableB,tableA不为空的tra_date,按表名顺序取,取到了则返回该条数据
SELECT t.approve_no, t.tra_date, t.tablename, t.part_dt
FROM (SELECT approve_no, tra_date, tablename, part_dt,ROW_NUMBER() OVER (PARTITION BY approve_no ORDER BY CASE WHEN tablename = 'tableC' THEN 1WHEN tablename = 'tableD' THEN 2WHEN tablename = 'tableB' THEN 3WHEN tablename = 'tableA' THEN 4ELSE 5END,CASE WHEN tra_date <> '' THEN 0 ELSE 1 END,tra_date DESC) AS row_numberFROM test_approve
) AS t
WHERE t.row_number = 1;
相关文章:
项目中遇到的sql问题记录
有一张表,表结构及数据如下: INSERT INTO test.test_approve(approve_no, tra_date, tablename, part_dt) VALUES (approve001, 2021-02-18 00:00:00, tableA, 2024-03-18); INSERT INTO test.test_approve(approve_no, tra_date, tablename, part_dt) …...
Python Web开发记录 Day13:Django part7 Ajax入门与案例(任务管理)
名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、Ajax入门①简介②工作原理③优点④缺点⑤使用…...
寻找可能认识的人
给一个命名为:friend.txt的文件 其中每一行中给出两个名字,中间用空格分开。(下图为文件内容) 题目:《查找出可能认识的人 》 代码如下: RelationMapper: package com.fesco.friend;import or…...
机器学习----特征缩放
目录 一、什么是特征缩放: 二、为什么要进行特征缩放? 三、如何进行特征缩放: 1、归一化: 2、均值归一化: 3、标准化(数据需要符合正态分布): 一、什么是特征缩放: 通…...
机器学习_正则化
文章目录 代价函数 如果我们有非常多的特征,我们通过学习得到的假设可能能够非常好地适应训练集(代价函数可能几乎为 0),但是可能会不能推广到新的数据。 下图是一个回归问题的例子: 第一个模型是一个线性模型…...
python知识点总结(四)
这里写目录标题 1、Django 中的缓存是怎么用的?2、现有2元、3元、5元共三种面额的货币,如果需要找零99元,一共有多少种找零的方式?3、代码执行结果4、下面的代码执行结果为:5、说一下Python中变量的作用域。6、闭包7、python2与p…...
upload-labs-pass01
1.安装好环境进入关卡(记得打开小皮) 2.可以看到第一关是要求上传图片,但是同时限制了图片类型,那么如果我们将木马写入图片,但是类型又不在白名单,就要想办法绕过 3.可以看到这里的要求是有checkÿ…...
2.4 ROC曲线是什么?
2.4 ROC曲线是什么? 场景描述 二值分类器(Binary Classifier)是机器学习领域中最常见也是应用最广泛的分类器。 评价二值分类器的指标很多,比如precision、recall、F1score、P-R 曲线等。前面已对这些指标做了一定的介绍,但也发现这些指标或…...
mysql笔记:21. 演示脏读、不可重复读和幻读现象
文章目录 脏读1. 设置窗口B中事务的隔离级别2. 演示脏读3. 重新设置窗口B中事务的隔离级别4. 再次验证脏读 不可重复读1. 演示不可重复读2. 设置窗口B中事务的隔离级别3. 再次验证不可重复读 幻读1. 设置窗口B中事务的隔离级别2. 演示幻读3. 重新设置窗口B中事务的隔离级别4. 再…...
iOS通过wifi连接硬件设备
一、连接智能硬件设备的方式 连接智能硬件设备通常涉及到使用不同的通信技术和协议,例如 Bluetooth、Wi-Fi、Zigbee 等。下面我将详细介绍几种连接智能硬件设备的方式,并举例说明: 1.1 使用 Bluetooth 连接 方式: 通过使用 Cor…...
SQL-Labs靶场“36-37”关通关教程
一、36关 GET单引号宽字节注入 请求方式注入类型拼接方式GET联合、报错、布尔盲注、延时盲注id‘$id’ 首先我们进行测试(使用?id1\,查看过滤后的回显) 这里可以看到对我们的注释符进行了注释以及单双引号进行测试会发现都是如此ÿ…...
RabbitMQ介绍及搭建
架构 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,使用erlang语言编写,依赖Erlang环境运行。 Broker:运行消息队列服务进程的节点,包含Exchange、Queue; Producer:消…...
VSCode + PicGo + Github 实现markdown图床管理
目录 PicGo客户端VSvode插件 PicGo客户端 PicGo 是一个图片上传管理工具 官网:https://molunerfinn.com/PicGo/ github图传使用说明:https://picgo.github.io/PicGo-Doc/zh/guide/config.html#GitHub图床 步骤: 1、创建一个github公开仓库…...
小程序搜索排名优化二三事
小程序的优化主要是排名优化和性能优化两个版块。性能优化这方面主要靠开发者自己完善,我们团队提供的服务就是把产品的排名打上去,获得更多的自然流量,实现盈利。 如何提升小程序的搜索排名主要从如下几个方面出发: 首先要知道…...
分布式 Session--一起学习吧之架构
一、定义 分布式Session是指在一个分布式系统中,多个服务器之间共享用户的会话信息。在Web应用中,Session通常用于跟踪用户的状态和会话数据。然而,在分布式系统中,由于用户请求可能被分发到不同的服务器上,因此需要一…...
记录一下小程序自定义导航栏消息未读已读小红点,以及分组件的消息数量数据实时读取
本案例,Message 身为组件,使用不了任何钩子来重新获取 this.getMessageList() 消息列表 使用 props 父子传参,因为 Message 组件使用不了页面生命周期从而无法拿到传递过来的数据 使用 watch 监听不到 props 更不建议使用本地存储,…...
qt+ffmpeg 实现音视频播放(二)之音频播放
一、音频播放流程 1、打开音频文件 通过 avformat_open_input() 打开媒体文件并分配和初始化 AVFormatContext 结构体。 函数原型如下: int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options); 参数说…...
Bash Shell中双引号中的感叹号问题详解
Bash Shell中双引号中的感叹号问题详解 在Bash Shell中,感叹号(!)是一个特殊字符,主要用于历史扩展。历史扩展允许你使用!来引用历史命令。然而,当你在双引号中使用感叹号时,如果你在双引号中直接使用感叹号,它可能会…...
MFC中CString的用法及使用示例
CString 是 Microsoft Foundation Classes (MFC) 库中的一个类,用于处理 C 风格的字符串。它提供了很多有用的方法和函数,使得字符串的操作变得更加简单和安全。下面是一些 CString 的基本用法和使用示例: 1. 包含头文件 首先,你…...
注册个人小程序
访问地址 https://mp.weixin.qq.com/ 立即注册 选择小程序 注册 填写信息 登录邮箱 访问邮箱的链接激活账号 选择个人,填写信息 注册完成,即可登录进入填写信息...
如何用SVGnest提升材料利用率:从问题到解决方案的完整指南
如何用SVGnest提升材料利用率:从问题到解决方案的完整指南 【免费下载链接】SVGnest An open source vector nesting tool 项目地址: https://gitcode.com/gh_mirrors/sv/SVGnest 制造业材料浪费的隐形成本:您的企业是否正在损失30%利润ÿ…...
开源解决方案:企业零代码条码生成的降本实践指南
开源解决方案:企业零代码条码生成的降本实践指南 【免费下载链接】librebarcode Libre Barcode: barcode fonts for various barcode standards. 项目地址: https://gitcode.com/gh_mirrors/li/librebarcode 一、条码管理的隐性成本陷阱:中小企业…...
安全第一:OpenClaw+GLM-4.7-Flash的本地化数据处理方案
安全第一:OpenClawGLM-4.7-Flash的本地化数据处理方案 1. 为什么我们需要本地化AI解决方案 上个月我帮一位律师朋友处理合同审查任务时,遇到了一个棘手问题——他需要分析上百份涉及商业机密的文件,但担心使用云端AI服务会导致数据泄露。这…...
保姆级教程:在Windows 11上为PyTorch配置CUDA 12.x和cuDNN(含环境变量疑难杂症排查)
Windows 11深度学习环境配置全攻略:从CUDA安装到PyTorch GPU加速实战 每次打开PyCharm准备大展身手时,看到那个令人心碎的False——torch.cuda.is_available()的输出结果,是不是感觉整个深度学习梦想都被泼了冷水?别担心…...
零中断迁移:企业级文档系统全流程实战指南
零中断迁移:企业级文档系统全流程实战指南 【免费下载链接】outline Outline 是一个基于 React 和 Node.js 打造的快速、协作式团队知识库。它可以让团队方便地存储和管理知识信息。你可以直接使用其托管版本,也可以自己运行或参与开发。源项目地址&…...
Fish-Speech-1.5开源模型的企业级部署架构设计
Fish-Speech-1.5开源模型的企业级部署架构设计 如果你正在考虑将Fish-Speech-1.5这个强大的语音合成模型引入到自己的业务中,比如做个智能客服、有声书平台,或者给产品加个语音播报功能,那你肯定不能只满足于在本地电脑上跑个Demo。一旦涉及…...
从0到1:Java+AI入门实战,看完直接上手项目
文章目录前言环境准备:别急着装Python,先把JDK升到21第一滴血:让Java程序说出"人话"进阶玩法:给AI装上"记忆"和"工具"让AI记住你们聊过啥让AI能查数据库、调接口实战项目:搭建私有知识库…...
Keepalived+Nginx+Tomcat 高可用项目集成 MySQL 数据库全记录
前言在之前的文章中,我搭建了基于 KeepalivedNginxTomcat 的高可用 Web 架构,实现了入口 VIP 漂移和反向代理。但这套架构还缺少“数据层”——所有服务都是无状态的,不能持久化数据。为了让项目更完整,我决定加入 MySQL 数据库&a…...
突破语言壁垒:XUnity.AutoTranslator的创新解决方案
突破语言壁垒:XUnity.AutoTranslator的创新解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 当你打开一款期待已久的国外游戏,却发现满屏外文让剧情理解寸步难行࿱…...
STM32 GPIO模式实战:开漏输出与推挽输出的5个常见应用场景解析
STM32 GPIO模式实战:开漏输出与推挽输出的5个常见应用场景解析 在嵌入式开发中,GPIO(通用输入输出)是最基础也是最常用的外设之一。STM32系列微控制器提供了多种GPIO模式,其中开漏输出(Open-Drainÿ…...
