PostgreSQL 9.3の使用。PostgreSQLのファイル名からファイル拡張子を取得するには?
qwerty.swf
some.image.jpg
some.other.image.jpg
この列もnull値を許可:そのようなファイル名の値を持つ列を持っている 。
SQLクエリでこの列からファイル拡張子を取得するにはどうすればよいですか?
PostgreSQL 9.3の使用。PostgreSQLのファイル名からファイル拡張子を取得するには?
qwerty.swf
some.image.jpg
some.other.image.jpg
この列もnull値を許可:そのようなファイル名の値を持つ列を持っている 。
SQLクエリでこの列からファイル拡張子を取得するにはどうすればよいですか?
試してみてください。
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
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
危険です。パターンが一致しない場合、regexp_matchesは行を削除します。 –
1行あたりのファイル名、またはカンマで区切られましたか? – jarlh
行ごとに1つのファイル名 – kostepanych