使用PostgreSQL 9.3。 有一个文件名值如下的列:
qwerty.swf
some.image.jpg
some.other.image.jpg
此列还允许空值。
如何在sql查询中从此列获取文件扩展名?
答案 0 :(得分:4)
尝试:
with mytable as (
select unnest(string_to_array($$qwerty.swf
some.image.jpg
some.other.image.jpg
test
$$,E'\n')) filename)
select filename,substring(filename from '\.([^\.]*)$')
from mytable
答案 1 :(得分:2)
使用regexp
执行此操作。
select regexp_matches(filename,'\.(\w+)$')
from tablename
where filename ~ '\.' --check if filename has atleast 1 . character in it
或substring
,reverse
和strpos
的组合。
select reverse(substring(reverse(filename) from 1 for strpos(reverse(filename),'.')-1))
from tablename
where filename ~ '\.' --check if filename has atleast 1 . character in it