sql - T-SQL 计算字母数字键的最大值
问题描述
我有一个客户表,其中有一个由 5 个字母和 3 个数字组成的字母数字键。
我正在尝试为每 5 个字母依次计算下一个 3 位数字,例如:
示例键
ALPHA001
ALPHA002
NUMBE001
NUMBE002
NUMBE003
PREST001
PREST002
PREST003
PREST004
PREST005
从上面的键列表中,我想返回每个唯一的 5 个字母键的最大值。IE
返回值
ALPHA002
NUMBE003
PREST005
解决方案
首先:不要在一列中存储多个值。应将密钥和运行编号存储在单独的列中,并将它们组合起来仅用于显示目的...
尝试这个
DECLARE @mockupTable TABLE(ID INT IDENTITY,YourKey VARCHAR(100));
INSERT INTO @mockupTable VALUES
('ALPHA001')
,('ALPHA002')
,('NUMBE001')
,('NUMBE002')
,('NUMBE003')
,('PREST001')
,('PREST002')
,('PREST003')
,('PREST004')
,('PREST005');
WITH cte AS
(
SELECT *
,ROW_NUMBER() OVER(PARTITION BY LEFT(YourKey,5) ORDER BY CAST(RIGHT(YourKey,3) AS INT) DESC) AS PartitionedRowNumber
FROM @mockupTable
)
SELECT *
FROM cte
WHERE PartitionedRowNumber =1;
结果
ID Key
2 ALPHA002
5 NUMBE003
10 PREST005
推荐阅读
- python - 从 csv 文件附加字典
- scikit-learn - 无法通过 SKlearn 的检查估计器
- machine-learning - Weka PCA 中的 ranker 告诉我们关于特征选择的什么信息?
- python - 我是 python 新手,对编码知之甚少,但想了解更多关于如何创建工作代码的信息
- elasticsearch - 如何在logstash中合并两个文档
- javascript - React Admin:创建/编辑视图中的动态成功消息
- android-studio - Android studio AAPT:写入 R.txt 失败:数据无效
- java - 多对一连接的多个 sql 查询与来自 java 应用程序的单个查询
- python - Savedmodel 的预测(Tensorflow 2)
- python - Pandas 如何将数据框中的所有值保存到 csv 中?