sql >> Database teknologi >  >> RDS >> PostgreSQL

Forespørgselssætsortering:Angivelse af kolonnesortering for django ORM-forespørgsel

Siden Django 1.8 order_by() accepterer ikke kun feltnavne men også forespørgselsudtryk .

I et andet svar Jeg gav et eksempel på, hvordan du kan tilsidesætte standardsorteringen for en kolonne. Det nyttige forespørgselsudtryk her er Func() , som du kan underklassificere eller bruge direkte:

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

Bemærk dog, at den resulterende SQL vil være mere som:

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

Det vil sige, at sorteringen tilsidesættes i ORDER BY klausul i stedet for i SELECT klausul. Men hvis du skal bruge det i en WHERE klausul, kan du bruge Func() i annotate() .



  1. MyBatis ekstra komma i opdateringsforespørgsel

  2. Hvordan bruger man mysqldump til en del af et bord?

  3. PHP 7.0 ODBC-driver til Windows

  4. Formatering af et numerisk SQL-forespørgselsresultat med et vilkårligt antal decimaler