Autor | Zpráva | ||
---|---|---|---|
trigger Profil * |
Mám ještě jednu prosbu o radu, tentokrat je to select.
mám sloupce a např. hodnoty: name = n1, n2, n3, n4, n5 col1 = 0, 300, -100, 200, -50 col2 = 1000, 2000, 1500, 4000, 20 položky potřebuji setřídit následně: podle col2 vzestupně, ale nejdříve podle podmínky col1>=0 a pak teprve budou následovat col1<0 tzn. výsledek příkladu: n1, n2, n4, n5, n3 Dik za radu |
||
juriad Profil |
Tak to napiš úplně přímočaře:
select * from x order by col1 >= 0 desc, col2 asc col1>=0 bude pro každý záznam jednička, pokud je to splněné, nebo nula. A ty mu řekneš, že napřed chceš záznamy s jedničkou a pak nulou. A při shodě (když má několik záznamů stejnou hodnotu) se řadí podle druhého zadaného sloupce.
Ponaučení: řadit lze nejen podle hodnoty sloupce, ale podle libovolného výrazu. Příště, prosím, zkus vymyslet lepší název tématu, třeba: řazení v SQLite, kladné a záporné zvlášť |
||
Kajman Profil |
#3 · Zasláno: 4. 7. 2014, 19:42:52
Aby n5 bylo před n3, tak by col2 měl být asi obalen ve funkcí abs()
|
||
Časová prodleva: 10 let
|
0