2016-06-29 2 views

답변

3

시도 :

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 
2

regexp을 사용하십시오.

Sample fiddle

또는 substring, reversestrpos의 조합

select regexp_matches(filename,'\.(\w+)$') 
from tablename 
where filename ~ '\.' --check if filename has atleast 1 . character in it 
.

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 
+0

위험합니다. 패턴이 일치하지 않으면 regexp_matches 행이 삭제됩니다. –