Ordinamento di stringhe

| | Comments (0)

Io me ne sono accorto solo recentemente... QlikView è senza dubbio un prodotto originale, ma che lo fosse anche nell'ordinamento delle stringhe ...non me lo aspettavo !


Provate a chiedergli di ordinare questi valori:


load * inline [

Stringa

002501A76

1ABAC2244

2500A7600

A BA00000

A-B000000

];

Vi aspettereste che vengnano presentati esattamente come sono scritti, o eventualmente potreste avere il dubbio se le cifre vanno prima delle lettere, oppure il contrario

Invece il risultato è questo:


aa.gif

Quando l'ho visto la prima volta ho pensato: "lo fa a caso"; e subito dopo "è un baco della release"


Invece la spiegazione della casa madre è stata circostanziata:


"L'ordinamento in Qlikview viene fatto sul carattere (da sinistra a destra) in base alle impostazioni locali, ma solo i caratteri alfanumerici sono interessanti per la sequenza di ordinamento: tutti gli altri caratteri non-alfanumerici vengono gestiti nello stesso modo, sullo stesso livello. Ad esempio: "A-B" verrà ordinato prima "A BA" perché "-" e "" verranno trattati in maniera uguale.

Se la stringa contiene valori numerici, QlikView ordina la parte numerica della stringa, prima di applicare l'ordinamento alfanumerico. Questo spiega il perché 1ABAC2244 viene ordinate prima di 002500A76 nell'esempio. La parte numerica di 002500A76 sarà 002500 (o 2500) che verrà confrontata con 1 (parte numerica di 1ABAC2244).


Tutti i valori numeri identici ricevono lo stesso simbolo, indifferentemente dalla loro presentazione - ad esempio 0025, 025, 25 etc. sono considerati identici ed i simboli usati per rappresentarli è semplicemente quello che appare nel primo array ("0025" in questo caso) e questo implica che questi valori vengono raggruppati condividendo uno stesso simbolo ..."



E se uno volesse l'ordinamento classico ?


Se invece provate a fare il rank(Stringa), l'ordinamento è ancora diverso....

bb.gif

Che dire ? 
Forse è un brutto sogno... 

Leave a comment

Novità! Se vuoi essere contattato da un consulente Querit lascia nome e numero e Ti telefoneremo:





Pages