是否可以在DB2中生成字母数字序列?
我想创建一个以'AA'开头并以'99'结尾的字母数字序列,如下所示:
AA...AZ, A0...A9, BA...BZ, B0...B9, ... ZA...ZZ,
Z0...Z9, 0A...0Z, 00...09, 1A...1Z, 10...19, ...9A...9Z, 90...99
答案 0 :(得分:1)
这是一个递归查询,从0到1295迭代,DIV& MOD用于查找字母字符:
WITH n(n,x) AS
(
SELECT 0,'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT n+1,x FROM n WHERE n<1295
)
SELECT
SUBSTR(x, n/36 + 1,1) || SUBSTR(x, MOD(n,36) + 1,1)
FROM n
答案 1 :(得分:0)
DB2具有CREATE SEQUENCE语句以允许创建数字序列。有功能可以获得已定义序列的当前值和下一个值。创建一个SQL function,在调用时,从序列中获取下一个值并将其转换为您的特定编码。