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
Aby n5 bylo před n3, tak by col2 měl být asi obalen ve funkcí abs()

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0