2016-06-29 12 views

Antwort

3

Versuch:

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

Verwenden Sie hierzu regexp.

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

Sample fiddle

oder eine Kombination aus substring, reverse und 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 
+0

Seien Sie vorsichtig, es ist gefährlich: regexp_matches Zeilen löschen, wenn das Muster nicht übereinstimmt. –

Verwandte Themen