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

【DB】根据某字段生成序号

如下图所示:根据RCV_ORD_NUM,生成明细行号,当RCV_ORD_NUM相同时,序号自增,不同时,从1开始并始终保持四位字符串在这里插入图片描述

直接更新的方式

SET @i := 0,
@now_region_id := NULL;
UPDATE tqt_pl_prod.t_receipt_order_line l1
JOIN (
	SELECT
		ID,
		RCV_ORD_ID,
		LPAD(( @i := IF ( @now_region_id = RCV_ORD_ID, @i + 1, 1 )), 4, '0' ) RCV_ORD_LIN_NUM,
		( @now_region_id := `RCV_ORD_ID` ) 
	FROM
		tqt_pl_prod.t_receipt_order_line 
	WHERE
		( RCV_ORD_LIN_NUM IS NULL OR RCV_ORD_LIN_NUM = '' ) 
	ORDER BY
		RCV_ORD_ID,
		ID 
	) l2 ON l1.ID = l2.ID 
	SET l1.RCV_ORD_LIN_NUM = l2.RCV_ORD_LIN_NUM 
WHERE
	( l1.RCV_ORD_LIN_NUM IS NULL OR l1.RCV_ORD_LIN_NUM = '' ) 

导入数据——查询历史表插入目标表

SET @i := 0, @now_region_id:='';
INSERT INTO tqt_sp_prod.t_ship_order_line (
	ID,
	SHP_ORD_NUM,
	SHP_ORD_LIN_NUM,
	ERR_INFO
	
)SELECT
pltsol.ID,
pltsoh.SHP_ORD_NUM,
IFNULL( pltsol.SHP_ORD_LIN_NUM, LPAD( ( @i := CASE WHEN @now_region_id = pltsol.SHP_ORD_ID THEN @i + 1 ELSE 1 END ), 4, '0' ) ) SHP_ORD_LIN_NUM,
( @now_region_id := pltsol.SHP_ORD_ID )
FROM
	tqt_pl_prod.t_ship_order_line pltsol
WHERE
	(pltsoh.SHP_TYPE IS NOT NULL 
	OR pltsoh.SHP_ORD_NUM IS NOT NULL) 
	ORDER BY pltsol.ID

http://www.kler.cn/a/417059.html

相关文章:

  • 在Java中操作Redis
  • DeepSeek与GPT大语言模型教程
  • 996引擎-问题处理:三职业改单职业
  • 【DeepSeek】DeepSeek概述 | 本地部署deepseek
  • [RabbitMQ] RabbitMQ常见面试题
  • 手动配置IP
  • 一万台服务器用saltstack还是ansible?
  • 倍思无线蓝牙耳机测评:“静”只是它的闪光点之一!
  • Doge东哥wordpress主题
  • 爬虫XPath相关
  • Android笔记(三十四):封装带省略号图标结尾的TextView
  • 电机瞬态分析基础(6):坐标变换(续)
  • 从0到1搭建webpack
  • ESLint 配置文件全解析:格式、层叠与扩展(3)
  • 将大模型指令微调数据从parquet转为json格式
  • 大数据新视界 -- Hive 与其他大数据工具的集成:协同作战的优势(上)(13/ 30)
  • Flink随笔 20241129 流数据处理:以生产线烤鸡为例理解 Flink
  • Socket编程(TCP/UDP详解)
  • Windows 平台使用 podofo.dll 异常,需要安装一下库:Win64OpenSSL_Light-3_3_2.msi
  • 配置泛微e9后端开发环境
  • 学习C#中的反射
  • 【Yarn Bug】 yarn 安装依赖出现的网络连接问题
  • Java抛出自定义运行运行
  • 后端-mybatis的一对一查询
  • 准确--在 AlmaLinux 9.2 上快速搭建 FTP 服务器
  • AI潮汐日报1128期:马斯克计划推出Grok挑战GPT宝座、实时数字孪生心脏模拟、大模型竟也会产生焦虑和偏见