kos*_*ych 2 sql postgresql postgresql-9.3
使用PostgreSQL 9.3。有一列具有类似文件名的值:
qwerty.swf
some.image.jpg
some.other.image.jpg
Run Code Online (Sandbox Code Playgroud)
此列还允许使用空值。
如何从SQL查询的此列中获取文件扩展名?
使用regexp要做到这一点。
select regexp_matches(filename,'\.(\w+)$')
from tablename
where filename ~ '\.' --check if filename has atleast 1 . character in it
Run Code Online (Sandbox Code Playgroud)
或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
Run Code Online (Sandbox Code Playgroud)
尝试:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4219 次 |
| 最近记录: |