Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola a tod@s
Me gustaría saber como puedo ordenar una tabla por un campo
Tengo el campo T.P con los valores 1,2,3,7,V,B,X,F y me gustaría ordenar la tabla por el orden indicado
1,2,3,7,V,B,X,F
Sabéis como puedo indicar este orden ?
Gracias
Supongo que el campo T.P lo usas como dimensión. Si esos valores se cargan en ese orden simplemente tienes que ordenar la dimensión según el orden de carga (propiedades --> ordenar --> ordenar por : orden de carga.
Si no estás seguro que se cargan siempre en ese orden, yo lo que suelo hacer es crear una tabla inline con el orden:
orden_carga:
LOAD * INLINE [
T.P, orden_tp
1, 1
2, 2
3, 3
7, 4
V, 5
B, 6
X, 7
F, 8
];
Luego tu decides si quieres mantener esta tabla en la memoria o hacer un left join con la tabla que contiene el campo T.P
Otra forma sería usar la función Dual para asignar un valor numérico a cada valor y de este modo sólo tendrías que ordenar el campo T.P por su valor numérico. Pero ojo. Esto te puede dar problemas si se trata de un campo clave, porque ahora su valor sería una dupla "cadena-numero" y quizá no una bien con el resto de tablas que tengan el campo T.P
La sintaxis sería como la anterior pero sustituyendo LOAD * INLINE [
por
LOAD DUAL ( "T.P", orden_tp) as <nombre_campo> INLINE [
Espero que te sirva
Supongo que el campo T.P lo usas como dimensión. Si esos valores se cargan en ese orden simplemente tienes que ordenar la dimensión según el orden de carga (propiedades --> ordenar --> ordenar por : orden de carga.
Si no estás seguro que se cargan siempre en ese orden, yo lo que suelo hacer es crear una tabla inline con el orden:
orden_carga:
LOAD * INLINE [
T.P, orden_tp
1, 1
2, 2
3, 3
7, 4
V, 5
B, 6
X, 7
F, 8
];
Luego tu decides si quieres mantener esta tabla en la memoria o hacer un left join con la tabla que contiene el campo T.P
Otra forma sería usar la función Dual para asignar un valor numérico a cada valor y de este modo sólo tendrías que ordenar el campo T.P por su valor numérico. Pero ojo. Esto te puede dar problemas si se trata de un campo clave, porque ahora su valor sería una dupla "cadena-numero" y quizá no una bien con el resto de tablas que tengan el campo T.P
La sintaxis sería como la anterior pero sustituyendo LOAD * INLINE [
por
LOAD DUAL ( "T.P", orden_tp) as <nombre_campo> INLINE [
Espero que te sirva
Hola José María.
¿Te sirvió la respuesta?
¿Pudiste solucionarlo?
Gracias, me funciona perfectamente.
un saludo