列数据格式

时间:2019-09-13 17:16:43

标签: sql oracle

我有一个数据库表FILE_TABLE,要求将文件名和扩展名合并到一个新列中。文件扩展名可以是任何东西。 MIMETYPE列中将提到。可以是application / pdf,image / tiff或audio / x-ms-wma等。

FILE_TABLE
-----------------------------------------------------------------------
ID  MIMETYPE      DOC_NAME           TITLE            DOC_TITLE
-----------------------------------------------------------------------
1.  image/jpeg    abc_image          null             abc_image.jpeg
2.  image/jpeg    xyz_image.jpeg     null             xyz_image
3.  image/jpeg    lmn_image          lmn_image.jpeg   null
4.  image/jpeg    123_img            123_img          null
5.  image/jpeg    567_img            null             567_img
6.  image/jpeg    null               987_img          987_img
7.  image/jpeg    321_img            321_img          321_img
8   app/pdf       abc                null             abc 

我还将具有用于扩展的MIMETYPE_TABLE查找表。像这样的东西。

MIMETYPE_TABLE 
-------------------------------
ID  MIMETYPE           FILE_EXT     
-------------------------------
1   application/json   json
2   image/jpeg         jpeg
3   application/pdf    pdf
4   audio/x-ms-wma     wma

预期结果应为在NEW_DOCNAME中带有扩展名的合格文件名,如下所示。

FILE_TABLE
----------------------------------------------------------------------------
ID  MIMETYPE    DOC_NAME        TITLE           DOC_TITLE       NEW_DOCNAME
----------------------------------------------------------------------------
1.  image/jpeg  abc_image       null            abc_image.jpeg  abc_image.jpeg
2.  image/jpeg  xyz_image.jpeg  null            xyz_image       xyz_image.jpeg
3.  image/jpeg  lmn_image       lmn_image.jpeg  null            lmn_image.jpeg
4.  image/jpeg  123_img         123_img         null            123_img.jpeg
5.  image/jpeg  567_img         null            567_img         567_img.jpeg
6.  image/jpeg  null            987_img         987_img         987_img.jpeg
7.  image/jpeg  321_img         321_img         321_img         321_img.jpeg
8   app/pdf     abc             null            abc             abc.pdf

2 个答案:

答案 0 :(得分:0)

interface User {
  attributes: {
    full_name: string;
  };
}

type SpecialUser = {
  attributes: {
    occupation: string;
  };
} & User;

const user: SpecialUser = {
  attributes: {
    occupation: "job",
    full_name: "name"
  }
};

答案 1 :(得分:0)

您需要将表与查找表连接起来,并生成所需的值,如下所示:

select f.*,
       coalesce(f.doc_name, f.title, f.doc_title) 
       || case when
          instr(coalesce(f.doc_name, f.title, f.doc_title), '.' || m.file_ext) = 0 
          then m.file_ext 
          end as new_docname
from file_table f 
join mimetype_table m
on (f.mimetype = m.mimetype)

干杯!