CREATE OR REPLACE FUNCTION sortLetters(text) RETURNS text AS $$ DECLARE i INT := 0; test VARCHAR(10) := $1; passed BOOLEAN := false; last_char VARCHAR(1) := ''; BEGIN WHILE NOT passed LOOP passed := true; WHILE i <= length(test) LOOP IF (i > 0 AND substr(test, i, 1) < substr(test, i-1, 1)) THEN test = substr(test, 0, i-1) || substr(test, i, 1) || substr(test, i-1, 1) || substr(test, i+1, length(test) - i); passed := false; END IF; last_char := substr(test, i, 1); i := i + 1; END LOOP; END LOOP; return test; END;$$ LANGUAGE plpgsql STRICT IMMUTABLE;