sql - oracle sql中填写序号

标签 sql oracle sequence fill

我有一个包含两列的表格,这些列有范围,即

 Batch  from _serial_no to_serial_no
 a  1   5
 b  2   7

我想创建另一列来分别填补 abd b 的空白 像这样的事情

 Batch  from _serial_no to_serial_no    seq_number
 a  1   5   1
 a  1   5   2
 a  1   5   3
 a  1   5   4
 a  1   5   5
 b  2   7   2
 b  2   7   3
 b  2   7   4
 b  2   7   5
 b  2   7   6
 b  2   7   7

有我可以使用的sql吗?

我尝试过类似的方法,但没有成功

 select * 
 from ( 
      select a.*,rownum n   
      from my_table a connect by level <= TO_SERIAL_NO
 )  
 where n >= FROM_SERIAL_NO;

最佳答案

SQL> with
  2    data as (select 'a' batch, 1 from_serial_number, 5 to_serial_number from dual
  3             union all
  4             select 'b' batch, 2 from_serial_number, 7 to_serial_number from dual),
  5    seq as (select rownum n# from dual connect by level <= (select max(to_serial_number) from data))
  6  select
  7    data.*,
  8    seq.n#
  9  from
 10    data,
 11    seq
 12  where
 13    seq.n# between data.from_serial_number and data.to_serial_number
 14  order by
 15    1, 2, 4;

BATCH FROM_SERIAL_NUMBER TO_SERIAL_NUMBER         N#
----- ------------------ ---------------- ----------
a                      1                5          1
a                      1                5          2
a                      1                5          3
a                      1                5          4
a                      1                5          5
b                      2                7          2
b                      2                7          3
b                      2                7          4
b                      2                7          5
b                      2                7          6
b                      2                7          7

11 rows selected

关于sql - oracle sql中填写序号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49024770/

相关文章:

mysql - 查找与特定优惠券关联的所有订单

mysql - 使用 SQL 表达式计算公寓的填充度

oracle - 从引用创建记录

java - 是否可以使用 JDBC 将数据从 Oracle 传输到 Teradata,反之亦然?

java - 如何在 PL/SQL 存储过程中返回自定义集

c程序打印look and say序列

haskell - 是否有更严格的Data.Sequence?

sql - 使用修剪后的字符串执行 WHERE 语句或 JOIN ON

python - 用于计算序列的第 n 个元素的脚本

sql - 使用 MS Access 中的 SQL 查询返回组内最常见的值和计数