Oracle SQL查询,用于列出文件名序列中缺少的文件名

时间:2012-08-29 19:29:54

标签: oracle

有没有办法使用Oracle SQL从以下文件名序列中列出丢失的文件名?

文件名存储在table1中。文件名type1和type2有两种类型。文件名不一定以正确的序列号顺序存储。对于每种文件类型,应该有十个文件(序列编号为001-010)。

文件名采用以下格式:

filetype.type1.seq.001.dat

filetype.type1.seq.004.dat

filetype.type2.seq.001.dat

filetype.type1.seq.006.dat

filetype.type2.seq.006.dat

filetype.type1.seq.007.dat

filetype.type1.seq.010.dat

filetype.type2.seq.004.dat

filetype.type1.seq.002.dat

filetype.type1.seq.003.dat

filetype.type2.seq.005.dat

filetype.type2.seq.008.dat

filetype.type2.seq.009.dat

filetype.type2.seq.010.dat

此序列中缺少的文件将是:

filetype.type1.seq.005.dat,filetype.type1.seq.008.dat,filetype.type1.seq.009.dat filetype.type2.seq.002.dat,filetype.type2.seq.003.dat,filetype.type2.seq.007.dat

感谢。

2 个答案:

答案 0 :(得分:2)

您可以在运行时生成文件名,例如:

select 'filetype.type' || typeno || '.seq.' || to_char(seqno,'fm000') || '.dat'
       as filename
from (select rownum as typeno from dual connect by level <= 2)
    ,(select rownum as seqno from dual connect by level <= 10)
minus
select filename from table1;

答案 1 :(得分:0)

select filename
from ref_table
MINUS
select distinct filename
from table1;

ref_table将包含所有可能的文件名列表。