Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
PostgreSQL natural sort
create or replace function naturalsort(text)
returns bytea language sql immutable strict as
$f$ select string_agg(convert_to(coalesce(r[2],length(length(r[1])::text) || length(r[1])::text || r[1]),'SQL_ASCII'),'\x00')
from regexp_matches($1, '0*([0-9]+)|([^0-9]+)', 'g') r; $f$;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment