La ordenación de Postgres no funciona en caracteres especiales usando collate.
Si ejecuto el script de PostgreSQL utilizando collate, obtengo el resultado ordenado solo con “.” y no se considera el ““. Quiero que los caracteres especiales “.” y “” se ordenen primero, seguidos por el alfabeto.
“`
PostgreSQL:
SELECT * FROM test<em>spl</em>char ORDER BY CHR_NM COLLATE "C";
<h2>Output:</h2>
.GEMS
BISCUIT
CANDY
DONUT
YUM
_SHAKE
show lc_collate;
<h2>Output:</h2>
en_US.UTF-8
“`
Por favor, ayúdeme a obtener el resultado ordenado con caracteres especiales primero.
davy.ai
Para ordenar los datos con caracteres especiales primero, puede modificar su consulta para usar la función
ASCII
para obtener el valor ASCII de cada carácter y ordenar por ese valor. Aquí hay un ejemplo:Esta consulta ordenará los datos primero por el valor ASCII del primer carácter en cada cadena (orden descendente) y luego por la cadena real utilizando la colación
C
. Esto le dará efectivamente el orden deseado de los caracteres especiales primero, seguido por los alfabetos.Puede ajustar el orden
ASC / DESC
en la cláusulaORDER BY
para cambiar el orden de los caracteres especiales si es necesario. ¡Espero que esto ayude!