select trim(regexp_replace(E'\tfoo \t bar baz ', E'\\s+', ' ', 'g'))
заменяет все (из-за флага 'g'
) пробельные (\s
) последовательности (+
) на один пробел, затем обрезает его, возвращая:
"foo bar baz"
E
означает, что используется escape-кодировка \
.
В новом отредактированном вопросе вы, вероятно, ищете запрос в следующем формате:
select count(*) from (
select distinct
mid,
regexp_replace(na_fname, E'\\s*', '', 'g'),
regexp_replace(na_lname, E'\\s*', '', 'g')
from masterfile) as subquery;