sql - 如何生成字符数组的二进制组合

标签 sql oracle algorithm

我必须在 Oracle-SQL 中生成一个二进制字符串。 它有一些规则。它可以包含字母 (A-Z) + 数字 (0-9) 像 A1、A2、A3 (但是不能以数字开头。1A、2A不要。) 你可以把字母表中的所有字母想象成 A、B、C。 它可以包含字母 (A-Z) + 字母 (A-Z) 像 AA, AB, AC, AD

有这样一个数据集,但是并没有提供平滑的增加。一些中间值已被删除

那样的话,首先会生成被删除的那个 其次,如果所有中间值都被填充,则可以生成最大值。 我认为它需要一个十六进制的解决方案,但它不能按照希望进行的顺序增加。 我应该采取什么样的方法? 有人有想法吗?

提前致谢

最佳答案

我开发了几乎相同的请求,我根据您的规则修改我的案例。 它以最小的字母开头,不是通过 for 循环分配的。它控制如果字母-字母和字母-数字组合已满,则传递下一个字母。

as
    temp varchar2(2);
    pn_num NUMBER;
    cn_string constant varchar2(25) := 'abcdefghijklmnoprstuvwxyz';
    cn_string2 constant varchar2(35) := 'abcdefghijklmnoprstuvwxyz0123456789';


begin
    pn_num := -1;
    ps_seri_num := '-1';

for i in 1..25
loop
    for j in 1..35
    loop
        select
            upper( substr(cn_string,i,1) ||
            substr(cn_string2,j,1))
            into temp from dual;
        select count(seri)
            into pn_num
            from bankdb.vrgdaire
            where seri = temp;
        IF pn_num = 0 THEN
            --aa yok
            ps_seri_num := temp;
            exit;
        END IF;
    end loop;

    IF ps_seri_num <> '-1' THEN
        exit;
   END IF;
end loop;

关于sql - 如何生成字符数组的二进制组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47791575/

相关文章:

sql - Big Query 多表

sql - MongoDB 的 JDBC 驱动程序

database - 将grails应用程序部署到Oracle iPlanet Web Server

java - 名称已被现有对象使用

linux - 尝试在 Scientific Linux 6.2 版上安装 oracle

algorithm - Trie 实现 - 将元素插入到 trie 中

sql - 无法调用 char 上的方法

php - MySQL:选择 `project_id` 等于任何 `project` 与特定 `user_id` 的行

c# - 从一大组照片中找出一张照片是否是单色/棕褐色

javascript - 如何将数字列表转换为唯一的两个对