有没有办法使用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
感谢。
答案 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将包含所有可能的文件名列表。