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 amostra | Classificação natural | Classificação personalizada |
---|---|---|
a 1, a 12, a 6, a 11 | a 1, a 12, a 2, a 3 | a 1, a 2, a 3, a 12 |
b 1, b 12, b 6, b 11 | b 1, b 12, b 2, b 3 | b 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.
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