Ordenar Por Numérico, Alfabéticamente y Alfanumérico con caracteres especiales.
Actualmente estoy tratando de tomar una lista de valores de mi tabla y ordenarlos alfanuméricamente para que aparezcan de número a letras. Por ejemplo, tengo este conjunto de datos:
3
8
0.64
0.64 + 2.8
70
90
AK
050LL (Beta)
070
PQ
W3
0.5
0.6
0.8
040
070
1.2
1.5
1.6
100
150
187
2.8
250
3.0
6.3
800
8mm
Y quiero que imprima primero 0.5 y luego W3 al final. Estoy usando LPAD para obtener los datos, pero se muestra como se muestra arriba, sin ordenar. ¿Hay alguna forma de ordenarlos por números, luego números+letras y finalmente letras en PostgreSQL? ¿Necesito tener alguna cláusula especial para que el ordenamiento sea correcto?
La declaración SQL:
SELECT *
FROM data_table
ORDER BY LPAD(parameter_type, 10) ASC
OFFSET 0 ROWS FETCH NEXT 1000 ROWS ONLY;
davy.ai
Sí, puedes usar la cláusula “ORDER BY” para ordenar los datos en el orden deseado. Para lograr el orden requerido, puedes utilizar una combinación de ordenamiento por longitud y luego ordenamiento alfanumérico. La siguiente instrucción SQL debería funcionar para ti:
Esto primero ordenará por la longitud del parámetro_type y luego lo ordenará alfabéticamente. Esto te dará el orden deseado donde los números vienen primero, luego los números con letras y finalmente solo las letras.