当前位置: 首页 > news >正文

项目中遇到的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问题记录

有一张表&#xff0c;表结构及数据如下&#xff1a; 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入门与案例(任务管理)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、Ajax入门①简介②工作原理③优点④缺点⑤使用…...

寻找可能认识的人

给一个命名为&#xff1a;friend.txt的文件 其中每一行中给出两个名字&#xff0c;中间用空格分开。&#xff08;下图为文件内容&#xff09; 题目&#xff1a;《查找出可能认识的人 》 代码如下&#xff1a; RelationMapper&#xff1a; package com.fesco.friend;import or…...

机器学习----特征缩放

目录 一、什么是特征缩放&#xff1a; 二、为什么要进行特征缩放&#xff1f; 三、如何进行特征缩放&#xff1a; 1、归一化&#xff1a; 2、均值归一化&#xff1a; 3、标准化&#xff08;数据需要符合正态分布&#xff09;&#xff1a; 一、什么是特征缩放&#xff1a; 通…...

机器学习_正则化

文章目录 代价函数 如果我们有非常多的特征&#xff0c;我们通过学习得到的假设可能能够非常好地适应训练集&#xff08;代价函数可能几乎为 0&#xff09;&#xff0c;但是可能会不能推广到新的数据。 下图是一个回归问题的例子&#xff1a; 第一个模型是一个线性模型&#xf…...

python知识点总结(四)

这里写目录标题 1、Django 中的缓存是怎么用的&#xff1f;2、现有2元、3元、5元共三种面额的货币&#xff0c;如果需要找零99元&#xff0c;一共有多少种找零的方式?3、代码执行结果4、下面的代码执行结果为&#xff1a;5、说一下Python中变量的作用域。6、闭包7、python2与p…...

upload-labs-pass01

1.安装好环境进入关卡&#xff08;记得打开小皮&#xff09; 2.可以看到第一关是要求上传图片&#xff0c;但是同时限制了图片类型&#xff0c;那么如果我们将木马写入图片&#xff0c;但是类型又不在白名单&#xff0c;就要想办法绕过 3.可以看到这里的要求是有check&#xff…...

2.4 ROC曲线是什么?

2.4 ROC曲线是什么&#xff1f; 场景描述 二值分类器(Binary Classifier)是机器学习领域中最常见也是应用最广泛的分类器。 评价二值分类器的指标很多&#xff0c;比如precision、recall、F1score、P-R 曲线等。前面已对这些指标做了一定的介绍&#xff0c;但也发现这些指标或…...

mysql笔记:21. 演示脏读、不可重复读和幻读现象

文章目录 脏读1. 设置窗口B中事务的隔离级别2. 演示脏读3. 重新设置窗口B中事务的隔离级别4. 再次验证脏读 不可重复读1. 演示不可重复读2. 设置窗口B中事务的隔离级别3. 再次验证不可重复读 幻读1. 设置窗口B中事务的隔离级别2. 演示幻读3. 重新设置窗口B中事务的隔离级别4. 再…...

iOS通过wifi连接硬件设备

一、连接智能硬件设备的方式 连接智能硬件设备通常涉及到使用不同的通信技术和协议&#xff0c;例如 Bluetooth、Wi-Fi、Zigbee 等。下面我将详细介绍几种连接智能硬件设备的方式&#xff0c;并举例说明&#xff1a; 1.1 使用 Bluetooth 连接 方式&#xff1a; 通过使用 Cor…...

SQL-Labs靶场“36-37”关通关教程

一、36关 GET单引号宽字节注入 请求方式注入类型拼接方式GET联合、报错、布尔盲注、延时盲注id‘$id’ 首先我们进行测试&#xff08;使用?id1\&#xff0c;查看过滤后的回显&#xff09; 这里可以看到对我们的注释符进行了注释以及单双引号进行测试会发现都是如此&#xff…...

RabbitMQ介绍及搭建

架构 RabbitMQ是实现了高级消息队列协议&#xff08;AMQP&#xff09;的开源消息代理软件&#xff0c;使用erlang语言编写&#xff0c;依赖Erlang环境运行。 Broker&#xff1a;运行消息队列服务进程的节点&#xff0c;包含Exchange、Queue&#xff1b; Producer&#xff1a;消…...

VSCode + PicGo + Github 实现markdown图床管理

目录 PicGo客户端VSvode插件 PicGo客户端 PicGo 是一个图片上传管理工具 官网&#xff1a;https://molunerfinn.com/PicGo/ github图传使用说明&#xff1a;https://picgo.github.io/PicGo-Doc/zh/guide/config.html#GitHub图床 步骤&#xff1a; 1、创建一个github公开仓库…...

小程序搜索排名优化二三事

小程序的优化主要是排名优化和性能优化两个版块。性能优化这方面主要靠开发者自己完善&#xff0c;我们团队提供的服务就是把产品的排名打上去&#xff0c;获得更多的自然流量&#xff0c;实现盈利。 如何提升小程序的搜索排名主要从如下几个方面出发&#xff1a; 首先要知道…...

分布式 Session--一起学习吧之架构

一、定义 分布式Session是指在一个分布式系统中&#xff0c;多个服务器之间共享用户的会话信息。在Web应用中&#xff0c;Session通常用于跟踪用户的状态和会话数据。然而&#xff0c;在分布式系统中&#xff0c;由于用户请求可能被分发到不同的服务器上&#xff0c;因此需要一…...

记录一下小程序自定义导航栏消息未读已读小红点,以及分组件的消息数量数据实时读取

本案例&#xff0c;Message 身为组件&#xff0c;使用不了任何钩子来重新获取 this.getMessageList() 消息列表 使用 props 父子传参&#xff0c;因为 Message 组件使用不了页面生命周期从而无法拿到传递过来的数据 使用 watch 监听不到 props 更不建议使用本地存储&#xff0c…...

qt+ffmpeg 实现音视频播放(二)之音频播放

一、音频播放流程 1、打开音频文件 通过 avformat_open_input() 打开媒体文件并分配和初始化 AVFormatContext 结构体。 函数原型如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options); 参数说…...

Bash Shell中双引号中的感叹号问题详解

Bash Shell中双引号中的感叹号问题详解 在Bash Shell中&#xff0c;感叹号(!)是一个特殊字符&#xff0c;主要用于历史扩展。历史扩展允许你使用!来引用历史命令。然而&#xff0c;当你在双引号中使用感叹号时&#xff0c;如果你在双引号中直接使用感叹号&#xff0c;它可能会…...

MFC中CString的用法及使用示例

CString 是 Microsoft Foundation Classes (MFC) 库中的一个类&#xff0c;用于处理 C 风格的字符串。它提供了很多有用的方法和函数&#xff0c;使得字符串的操作变得更加简单和安全。下面是一些 CString 的基本用法和使用示例&#xff1a; 1. 包含头文件 首先&#xff0c;你…...

注册个人小程序

访问地址 https://mp.weixin.qq.com/ 立即注册 选择小程序 注册 填写信息 登录邮箱 访问邮箱的链接激活账号 选择个人&#xff0c;填写信息 注册完成&#xff0c;即可登录进入填写信息...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...