如何在PostgreSQL中从文件名获取文件扩展名
如何在PostgreSQL 10中从文件名获取文件扩展名如何在PostgreSQL中从文件名获取文件扩展名,sql,string,postgresql,substring,Sql,String,Postgresql,Substring,如何在PostgreSQL 10中从文件名获取文件扩展名 filename.zip filename.tar.gz filename.rar filename.tar.bz2 这里是这样的 filename_202011120001.zip filename_202011120002.tar.gz filename_202011120003.rar filename_202011120004.tar.bz2 您可以使用regexp\u replace()。但不清楚你想要什么。如果要删除第一个
filename.zip
filename.tar.gz
filename.rar
filename.tar.bz2
这里是这样的
filename_202011120001.zip
filename_202011120002.tar.gz
filename_202011120003.rar
filename_202011120004.tar.bz2
您可以使用
regexp\u replace()
。但不清楚你想要什么。如果要删除第一个句点之前(含第一个句点)的所有字符:
regexp_replace(filename, '^[^.]*[.]', '')
如果要返回最后一个后缀:
regexp_replace(filename, '^.*[.]([^.]+)$', '\1')
是一个dbfiddle。您可以使用
regexp\u replace()。但不清楚你想要什么。如果要删除第一个句点之前(含第一个句点)的所有字符:
regexp_replace(filename, '^[^.]*[.]', '')
如果要返回最后一个后缀:
regexp_replace(filename, '^.*[.]([^.]+)$', '\1')
是一个dbfiddle。您可以使用子字符串()
:
这将捕获从第一个点到字符串末尾的所有内容
:
select filename, substring(filename from '\..*') ext
from (values
('filename.zip'),
('filename.tar.gz'),
('filename.rar'),
('filename.tar.bz2')
) t(filename)
文件名| ext
:--------------- | :-------
filename.zip |.zip
filename.tar.gz |.tar.gz
filename.rar |.rar
filename.tar.bz2 |.tar.bz2
您可以使用子字符串()
:
这将捕获从第一个点到字符串末尾的所有内容
:
select filename, substring(filename from '\..*') ext
from (values
('filename.zip'),
('filename.tar.gz'),
('filename.rar'),
('filename.tar.bz2')
) t(filename)
文件名| ext
:--------------- | :-------
filename.zip |.zip
filename.tar.gz |.tar.gz
filename.rar |.rar
filename.tar.bz2 |.tar.bz2
您希望得到什么结果?对于filename.tar.gz
,您想要.gz
还是.tar.gz
?您想要得到什么结果?对于filename.tar.gz
,您想要.gz
还是.tar.gz
?