【发布时间】:2020-05-07 20:05:16
【问题描述】:
是否可以生成唯一的 2 字符值并插入到表中。该数字将从
开始- 0-99
- 字母 A-Z
- 字母 AA - ZZ
- 可能从 A0-A9 到 Z0-Z9。
我不知道如何做到这一点,但我们需要在该字段中使用唯一的 2 值标识符。有什么建议么?
【问题讨论】:
-
查看 base 36 转换,特别是如果您在问题中列出的顺序不是必需的。
标签: sql db2 unique sequential
是否可以生成唯一的 2 字符值并插入到表中。该数字将从
开始我不知道如何做到这一点,但我们需要在该字段中使用唯一的 2 值标识符。有什么建议么?
【问题讨论】:
标签: sql db2 unique sequential
一个选项 - 没有完全编码,但我想足以理解 - 如果您需要任何类型的排序,您可能想要扩展它
WITH temp (c1) AS (
VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),(' '), ('A'), ('B'), ('C'), ('D'),('E'), ('F')
)
SELECT t2.c1 || t1.c1 FROM temp t1, temp t2
您可能还想查看业务需求,因为在我看来这是一种非常模仿的方法,因为唯一值是有限的
【讨论】:
最后,我们在 excel 中生成了值并将其上传到表中。建表的人不是我,所以很遗憾我没有使用的公式。
【讨论】:
试试这个:
WITH
N (I) AS (VALUES -9 UNION ALL SELECT I+1 FROM N WHERE I<26)
, S (C) AS (SELECT CASE WHEN I<1 THEN CAST(-I AS CHAR) ELSE CHR(64+I) END FROM N)
SELECT A.C || B.C FROM S A, S B;
【讨论】: