sql - 需要 SQL Server 中的查询逻辑
问题描述
我有这样的表product
:
source_item_id source_rev_id
----------------------------
111 a_01_tz
111 b_01_tz
111 c_01_tz
222 e_02_tz
222 f_02_tz
222 g_01_tz
333 h_03_tz
444 g_04_tz
现在我想要以这种格式输出:
source_item_id source_rev_id target_rev_id
--------------------------------------------
111 a_01_tz AAA
111 b_01_tz AAB
111 c_01_tz AAC
222 e_02_tz AAA
222 f_02_tz AAB
222 g_01_tz AAC
333 h_03_tz AAA
444 g_04_tz AAA
444 l_04_tz AAB
对于一个source_item_id
,可以有多个source_rev_id
。
请帮助编写查询。谢谢。
解决方案
结合一个子查询来创建一个项目计数器和一个从计数器创建AAA
的表达式ZZZ
:
SELECT
source_item_id, source_rev_id ,
CHAR( (target_rev_num)/676 % 26 + 65)
+ CHAR( (target_rev_num)/26 % 26 + 65)
+ CHAR( target_rev_num % 26 + 65)
AS target_rev_id
FROM (
SELECT source_item_id, source_rev_id ,
ROW_NUMBER() OVER ( PARTITION BY source_item_id
ORDER BY source_rev_id ) -1
AS target_rev_num
FROM product
) P
推荐阅读
- mongodb - 如何解决 mongodump 超时过期?
- django - 使用 FormHelper 居中对齐字段
- javascript - 按钮仅在时间限制后单击
- typescript - 如何在角度 8 中使用 *ngFor 根据 API 响应显示不同的不同图标?
- java - 我需要做什么来编码音频文件并将其上传到数据库中?
- typescript - 如何使用带有 Early Exit 构造的 Typescript 可选链接功能来排除空值
- javascript - 动态 Vuetify 文本框或基于数组值选择
- java - 如何在 HttpServletRequest 中设置参数 ID,1234?
- python - 查找匹配的 CSV 文件名,将顺序 .CSV 附加到另一个 .CSV 并重新编号顺序字段以仅在文件名匹配时继续顺序
- csv - 上传 Excel 文件并以 CSV 格式保存到指定路径