Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

209
Views
¿Cuál es la mejor manera de replicar los resultados de clasificación de PostgreSQL en JavaScript?

Estoy tratando de replicar los resultados de clasificación de PostgreSQL con fines de prueba.

Suponga que tiene una tabla temp con un solo name de columna que contiene las siguientes líneas:

 dolores et dolor nemo abc zxc

Ahora ejecuta la siguiente consulta:

 SELECT * from temp ORDER BY name ASC

El resultado ordenado es:

 abc dolores et dolor nemo zxc

Sin embargo, la implementación predeterminada para ordenar en lenguajes de programación lo devolverá de manera diferente:

 abc dolor nemo dolores et zxc

En JavaScript:

 ["dolores et", "dolor nemo", 'abc' , 'zxc'].sort() // returns ["abc", "dolor nemo", "dolores et", "zxc"]

Me preguntaba si hay una manera fácil de replicar el resultado de clasificación de la base de datos en JavaScript (estoy usando NodeJS), para poder verificarlo en mis pruebas. Creo que me estoy perdiendo algo muy simple aquí. Cualquier ayuda es apreciada.

Podría intentar usar una función como esta para forzar el orden en PostgreSQL, pero no quiero eso. Mi objetivo es replicar el comportamiento predeterminado en JavaScript.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

La clasificación de cadenas siempre se realiza mediante una determinada colación . Si no está consciente de usar una intercalación en su lenguaje de programación, probablemente esté usando la intercalación POSIX , que compara cadenas carácter por carácter según su punto de código (el valor numérico en la codificación).

En PostgreSQL, eso se vería así:

 ORDER BY name COLLATE "POSIX";

Entonces, para resolver su problema, tendría que averiguar la intercalación de la columna.

Si no se especifica una intercalación especial en la definición de la columna, utilizará la intercalación de la base de datos, que se puede encontrar con

 SELECT datcollate FROM pg_database WHERE datname = 'my_database';

Esa será una recopilación del sistema operativo de la biblioteca C.

Entonces, todo lo que tiene que hacer es usar esa intercalación en su programa.

Si su programa está escrito en C, puede usar directamente la biblioteca C. De lo contrario, consulte la documentación de su lenguaje de programación.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!