Skip to main content
Announcements
Do More with Qlik - Qlik Cloud Analytics Recap and Getting Started, June 19: REGISTER
cancel
Showing results for 
Search instead for 
Did you mean: 
josemaria
Creator II
Creator II

ordenar un campo en una tabla pivotante

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

1 Solution

Accepted Solutions
jmmayoral3
Creator
Creator

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

View solution in original post

3 Replies
jmmayoral3
Creator
Creator

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

jmmayoral3
Creator
Creator

Hola José María.

¿Te sirvió la respuesta?

¿Pudiste solucionarlo?

josemaria
Creator II
Creator II
Author

Gracias, me funciona perfectamente.

un saludo