"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como classificar colunas de string com números incorporados em SQL?

Como classificar colunas de string com números incorporados em SQL?

Publicado em 2024-11-10
Navegar:778

How to Sort String Columns with Embedded Numbers in SQL?

Classificando colunas de string com números incorporados em SQL

No SQL, é possível classificar colunas de string contendo números usando técnicas específicas. Isso pode ser útil quando o algoritmo de classificação natural de bancos de dados como MySQL não produz os resultados desejados.

Para obter classificação personalizada de colunas de string com números, várias abordagens podem ser empregadas:

Usando CAST e SUBSTRING:

SELECT *
FROM table
ORDER BY CAST(SUBSTRING(column,LOCATE(' ',column) 1) AS SIGNED)

Esta técnica divide a coluna em duas partes: o prefixo antes do espaço e o número depois dele. O número é então convertido em um tipo numérico (neste caso, ASSINADO) para comparação.

Usando SUBSTRING_INDEX:

ORDER BY SUBSTRING_INDEX(st, " ", 1) ASC, CAST(SUBSTRING_INDEX(st, " ", -1) AS SIGNED)

Esta abordagem usa a função SUBSTRING_INDEX para extrair os componentes de prefixo e número. Em seguida, ele classifica primeiro pelo prefixo e depois pelo número convertido.

Nota: Se o padrão da coluna for diferente de "WORD_space_NUMBER", uma abordagem diferente pode ser necessária.

Exemplos:

Dados de amostraClassificação naturalClassificação personalizada
a 1, a 12, a 6, a 11a 1, a 12, a 2, a 3a 1, a 2, a 3, a 12
b 1, b 12, b 6, b 11b 1, b 12, b 2, b 3b 1, b 2, b 3, b 12

Ao empregar essas técnicas, é possível classificar colunas de strings com números incorporados de maneira personalizada, garantindo que o os resultados se alinham com os requisitos específicos da aplicação.

Tutorial mais recente Mais>

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