需要SQL Server中的查询逻辑

gpr*_*gpr -1 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
Run Code Online (Sandbox Code Playgroud)

现在我想要这种格式的输出:

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
Run Code Online (Sandbox Code Playgroud)

首先source_item_id,可以有多个source_rev_id.

请在查询中提供帮助.谢谢.

Sta*_*r00 5

结合子查询创建一个计数器和创建表达式AAAZZZ从柜台:

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
Run Code Online (Sandbox Code Playgroud)

  • 那好美丽. (2认同)