sql - 创建字母数字序列 Oracle SQL

标签 sql oracle

我需要为我的主键创建一个包含 3 个字符和 4 个数字的字母数字序列。我尝试过谷歌搜索,但没有发现任何清晰或有用的东西。

那么,如何在 Oracle 中创建包含 3 个字符和 4 个数字的字母数字序列?

最佳答案

对于这样的序列没有开箱即用的支持。您可以使用 Oracle 表达式将数字序列转换为您所描述的内容。例如:

select a || b || c || last_4 from (
SELECT ROWNUM rn,
       lpad(MOD (ROWNUM, 10000),4,'0') last_4,
       CHR (MOD (FLOOR (ROWNUM / 10000), 26) + ASCII ('A')) c,
       CHR (MOD (FLOOR (ROWNUM / (10000 * 26)), 26) + ASCII ('A')) b,
       CHR (MOD (FLOOR (ROWNUM / (10000 * 26 * 26)), 26 * 26) + ASCII ('A')) a
FROM   DUAL
CONNECT BY ROWNUM <= POWER (26, 3) * 10000
)

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

相关文章:

sql - 将sql查询的输出分配给unix中的变量

php - 这个项目最好的 SQL 方案是什么?

mysql - 如何替换MySQL中的非数字字符?

mysql - 如何优化此内连接查询以减少查询时间

SQL 引导函数 S​​QL Netezza

java - 从 PL/SQL 调用 Java 加密体系结构 (JCA)

java - JBoss 7.1 - 声明数据源并通过 JNDI 访问

oracle - 将 IN 更改为 EXISTS

php - 如何在 php 中使用 oci_new_collection?

oracle - 与 Number 相比,Pls_integer 值需要 "less"存储空间。如何验证?