sql >> Databáze >  >> RDS >> PostgreSQL

Třídění sady dotazů:Určení řazení sloupců pro dotaz ORM django

Od Django 1.8 order_by() přijímá nejen názvy polí ale také výrazy dotazů .

V další odpovědi Uvedl jsem příklad, jak můžete přepsat výchozí řazení pro sloupec. Užitečný výraz dotazu je zde Func() , kterou můžete podtřídu nebo přímo použít:

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

Všimněte si však, že výsledný SQL bude spíše:

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

To znamená, že řazení je přepsáno v ORDER BY klauzule spíše než v SELECT doložka. Pokud jej však potřebujete použít v WHERE klauzule, můžete použít Func() v annotate() .



  1. SQLite a vlastní objednávka podle

  2. Permutace MySQL

  3. Definování zdroje dat jta mimo kontejner

  4. Převod NOT IN na NOT EXISTS