我需要更新表中的12.000条记录,以便将它们按顺序排列为'AAA','AAB','AAC'.....'ZZZ'。它应该是3个字符。
表格如下:
table_items
id - int (Identity)
name - nvarchar(50)
picking_order - nvarchar(3)
我需要用3个字符更新picking_order
。如何在SQL Server中编写此脚本?
答案 0 :(得分:3)
您可以使用ASCII()
函数和一些算术:
with toupdate as (
select t.*, row_number() over (order by id) - 1 as seqnum
from t
)
update toupdate
set picking_order = (ascii(char('A') + seqnum / (26*26)) +
ascii(char('A') + (seqnum / 26) % 26) +
ascii(char('A') + seqnum % 26)
);
答案 1 :(得分:0)
这就是你可以做的事情 - 很长的路要走(戈登有一种非常酷的方式来做你想做的事)
完成循环后,您的记录将会更新