gpt4 book ai didi

sql - 如何创建字母序列?

转载 作者:行者123 更新时间:2023-12-05 03:13:01 25 4
gpt4 key购买 nike

如何在 SQL Server 中创建字母序列?像 A、B、C....Z、AA、AB... 我指的是这个 Given Letter, Get Next Letter in Alphabet链接,但它在字母 Z 后不起作用。如何做到这一点?

最佳答案

你可以只使用算术。这将假设您在表格中有数字(但是您想要生成它们):

select (case when (n / 26) % 27 = 0 then ''
else char(ascii('A') + (n / 26) % 27 - 1)
end) +
char(ascii('A') + n % 26)
from numbers n;

例如:

select (case when (n / 26) % 27 = 0 then ''
else char(ascii('A') + (n / 26) % 27 - 1)
end) +
char(ascii('A') + n % 26)
from (select top 100 row_number() over (order by (select null)) - 1 as n
from master..spt_values
) n;

Here是一个 SQL fiddle 。可以使用相同的逻辑生成更长的序列。

另一种方法是将一系列字母放在一起,然后通过cross join将它们放在一起:

with letters as (
select top 26
char(ascii('A') + row_number() over (order by (select null)) - 1) as letter
from master..spt_values
)
select l1.letter as seq
from letters l1
union all
select l1.letter + l2.letter
from letters l1 cross join letters l2
union all
select l1.letter + l2.letter + l3.letter
from letters l1 cross join letters l2 cross join letters l3
order by len(seq), seq;

这有点挑战性,因为序列的长度不同。

Here是说明这种方法的 SQL Fiddle。

关于sql - 如何创建字母序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com