sql >> Databasteknik >  >> RDS >> PostgreSQL

Frågeuppsättningssortering:Anger kolumnsortering för django ORM-fråga

Sedan Django 1.8 order_by() accepterar inte bara fältnamn utan även frågeuttryck .

I ett annat svar Jag gav ett exempel på hur du kan åsidosätta standardsorteringen för en kolumn. Det användbara frågeuttrycket här är Func() , som du kan underklassa eller använda direkt:

nimi_et = Func(
    'nimi',
    function='et_EE',
    template='(%(expressions)s) COLLATE "%(function)s"')
Test.objects.order_by(nimi_et.asc())

Ändå, notera att den resulterande SQL kommer att vara mer som:

SELECT nimi FROM test ORDER BY nimi COLLATE "et_EE" ASC;

Det vill säga att sorteringen åsidosätts i ORDER BY sats snarare än i SELECT klausul. Men om du behöver använda den i en WHERE sats, kan du använda Func() i annotate() .



  1. Hur registrerar jag System.DirectoryServices för användning i SQL CLR-användarfunktioner?

  2. Hur man får antalet dagar i en månad i MySQL

  3. Bättre sätt än flera SELECT-satser?

  4. Problem med att använda MS Access som front-end till en MySQL-databas back-end?