Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Error in table sorting

Hi guys,

i have a problem in table sorting.

I have a linear table where are listed product codes.

Product codes consist of both numbers and letters.

I've tried to sort by alphabetical or numerical order but i obtain the same result and i think there is a mistake.

For example, i've 3 product codes.

Product 1 -> 65A000000RN;

Product 2 -> 110GLNS00CN;

Product 3 -> 660M0000060.


I expect that correct order would be:

Product 2 -> 110GLNS00CN (first, because it starts with 1!);

Product 1 -> 65A000000RN (65 comes before 66!);

Product 3 -> 660M0000060.


But in Qlikview I have:

Product 1;

Product 2;

Product 3.

(seen the attached image)


I think that Qlikview puts product 1 before product 2/3 because the product 1 code has a letter in third position, while the others has a letter in fourth position (just my idea!).


How can i obtain a "correct" order?

Thanks in advance!


product list.png



Labels (1)
1 Solution

Accepted Solutions
m_woolf
Master II
Master II

Try using text(Product_Code) for the dimension, or using Sort by Expression and putting text(Product_Code) as the expression.

View solution in original post

4 Replies
m_woolf
Master II
Master II

Try using text(Product_Code) for the dimension, or using Sort by Expression and putting text(Product_Code) as the expression.

Not applicable
Author

Hi Michael

what you can do is to sort in the script

LOAD text(prodcut_code)     as product_code, ..... FROM table

you can then sort either by text or by load order

best regards

Chris

maxgro
MVP
MVP

try with '' & Field

sort 106110.jpg

Anonymous
Not applicable
Author

This works (using first five characters here for sorting).  I hope there is a better way:

LOAD Product,
mid(Product,1,1) as S1,
mid(Product,2,1) as S2,
mid(Product,3,1) as S3,
mid(Product,4,1) as S4,
mid(Product,5,1) as S5
INLINE [
Product
65A000000RN
110GLNS00CN
660M0000060]
;

data:
LOAD DISTINCT Product as Prod // it is essential to use different name
RESIDENT source
ORDER BY S1,S2,S3,S4,S5;
DROP Table source;

And, sort by load order.