首页 > 解决方案 > 如何在 PostgreSQL 10 中更改文件名

问题描述

如何在 PostgreSQL 10 中更改文件名

filename         |    
:----------------------------- |
abc.zip;efg.zip     |

就像这里

filename         |    
:------------------------------ |
filename(1).zip;filename(2).zip |

标签: sqlpostgresql

解决方案


嗯。. . 您应该修复您的数据模型,这样您就不会将列表存储在字符串中。但是您可以通过拆分文件名然后重构新名称来做您想做的事情:

select *
from (values ('abc.zip;efg.zip')) x(filenames) cross join lateral
     (select string_agg('filename(' || n || ').' || split_part(filename, '.', 2), ';') as newnames
      from unnest(string_to_array(x.filenames, ';')) with ordinality s(filename, n)
     ) s;

是一个 db<>fiddle。


推荐阅读