PostgreSQL domyślnie uważa wartości NULL za najwyższe, a więc sortuje je jako pierwsze dla zstępujących zapytań i ostatnio dla rosnących.Jak zmienić domyślne zachowanie sortowania zerowego z PostgreSQL w ORM Django
Możesz modyfikować to zachowanie dla zapytania lub tworzenia indeksu, określając 'NULLS LAST' lub 'NULLS FIRST'.
Jak mogę użyć tego w połączeniu z ORM Django, bez potrzeby korzystania z nieprzetworzonych zapytań? tj. kiedy dodam do mojego query_set coś w stylu qs.order_by("-publish_start")
, jak mogę określić sortowanie dla wartości null? Lub, alternatywnie, w deklaracji pola/indeksu.
Warto napisać (ponieważ jestem powolny i zajęło mi to trochę czasu), że jeśli chcesz, aby wyniki miały najpierw wartości NULL, a następnie 'publish_start' sortowane ASCending, musisz odwrócić instrukcję order_by: '['-null_start', 'publish_start']'. –
'Dodatkowe' jest deprecjonowane, patrz zamiast tego http://stackoverflow.com/a/35494930/15690. – blueyed
@blueyed tak, to jest to, co mają 4-letnie odpowiedzi w przepełnieniu stosu. Rosną one przestarzałe. Nie trzeba się zgodzić na to ... –