Template:CultureSort: Difference between revisions

From LOTR-TCG Wiki
(Creating to have a standardized culture-grouped sorting that still puts Decipher cards before unofficial ones)
 
(Adding a sorting clause by side to split up smeagol/gollum)
Line 1: Line 1:
<noinclude>This is used in various cargo queries to ensure a sensible, generalized ordering of cards.
<noinclude>This is used in various cargo queries to ensure a sensible, generalized ordering of cards.


</noinclude>CASE WHEN CAST(C.SetNum AS UNSIGNED INTEGER) > 19 THEN 1 ELSE 0 END, C.Culture, CASE WHEN C.SetNum = '0' THEN 20 ELSE CASE WHEN C.SetNum RLIKE '^-?[0-9]+$' THEN CAST(C.SetNum AS UNSIGNED INTEGER) ELSE 100 END END, CASE WHEN C.SetNum = '0' THEN CASE WHEN C.Subset IN ('S', 'F') THEN 1 WHEN C.Subset IN ('D', 'L') THEN 2 WHEN C.Subset = 'M' THEN 3 WHEN C.Subset = 'J' THEN 4 ELSE 20 END ELSE CASE WHEN C.Subset = 'S' THEN 0 WHEN C.Subset = 'F' THEN 1 WHEN C.Subset = 'M' THEN 2 WHEN C.Subset = 'A' THEN 3 WHEN C.Subset = 'O' THEN 4 WHEN C.Subset = 'T' THEN 5 END END, C.CardNum, CR.Revision DESC
</noinclude>CASE WHEN CAST(C.SetNum AS UNSIGNED INTEGER) > 19 THEN 1 ELSE 0 END, C.Side, C.Culture, CASE WHEN C.SetNum = '0' THEN 20 ELSE CASE WHEN C.SetNum RLIKE '^-?[0-9]+$' THEN CAST(C.SetNum AS UNSIGNED INTEGER) ELSE 100 END END, CASE WHEN C.SetNum = '0' THEN CASE WHEN C.Subset IN ('S', 'F') THEN 1 WHEN C.Subset IN ('D', 'L') THEN 2 WHEN C.Subset = 'M' THEN 3 WHEN C.Subset = 'J' THEN 4 ELSE 20 END ELSE CASE WHEN C.Subset = 'S' THEN 0 WHEN C.Subset = 'F' THEN 1 WHEN C.Subset = 'M' THEN 2 WHEN C.Subset = 'A' THEN 3 WHEN C.Subset = 'O' THEN 4 WHEN C.Subset = 'T' THEN 5 END END, C.CardNum, CR.Revision DESC

Revision as of 21:18, 29 January 2022

This is used in various cargo queries to ensure a sensible, generalized ordering of cards.

CASE WHEN CAST(C.SetNum AS UNSIGNED INTEGER) > 19 THEN 1 ELSE 0 END, C.Side, C.Culture, CASE WHEN C.SetNum = '0' THEN 20 ELSE CASE WHEN C.SetNum RLIKE '^-?[0-9]+$' THEN CAST(C.SetNum AS UNSIGNED INTEGER) ELSE 100 END END, CASE WHEN C.SetNum = '0' THEN CASE WHEN C.Subset IN ('S', 'F') THEN 1 WHEN C.Subset IN ('D', 'L') THEN 2 WHEN C.Subset = 'M' THEN 3 WHEN C.Subset = 'J' THEN 4 ELSE 20 END ELSE CASE WHEN C.Subset = 'S' THEN 0 WHEN C.Subset = 'F' THEN 1 WHEN C.Subset = 'M' THEN 2 WHEN C.Subset = 'A' THEN 3 WHEN C.Subset = 'O' THEN 4 WHEN C.Subset = 'T' THEN 5 END END, C.CardNum, CR.Revision DESC