considerar a seguinte tabela PostGres:
subject | flag --------- ------ this is a test | 2Uma maneira eficaz de conseguir isso no Postgres é empregando uma junção lateral em conjunto com String_to_table () (disponível no Postgres 14). Isso nos permite dividir a coluna "Assunto" em tokens individuais e junte -os à tabela original. De tbl, string_to_table (sujeito, '') como token Onde flag = 2;
Nesta consulta, usamos a junção lateral para gerar um conjunto de linhas para cada token na coluna "sujeito" e filtramos os resultados com base no valor "sinalizador" especificado.
abordagens alternativas
para o PostGres 13 e anterior, Unest (string_to_array (sujeito, ' ')) Pode ser usado em vez de string_to_table (sujeito,' ').
SELECT token, flag FROM tbl, string_to_table(subject, ' ') AS token WHERE flag = 2;Outra abordagem é usar a função regexp_split_to_table (), que permite uma tokenização mais flexível com base em expressões regulares. No entanto, essa abordagem geralmente é mais lenta do que usar string_to_table ().
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3