PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

problem z aliasem kolumny postgres

W PostgreSQL nie można używać wyrażenia z aliasem w kolejności według. Działają tam tylko zwykłe aliasy. Twoje zapytanie powinno wyglądać tak:

   select distinct 
          l2.*, 
          l.user_id as l_user_id, 
          l.geopoint_id as l_geopoint_id 
     from locations l 
left join locations l2 on l.geopoint_id = l2.geopoint_id 
    where l.user_id = 8 
 order by l2.geopoint_id, l.user_id = l2.user_id desc;

Zakładam, że masz na myśli, że l2.user_id=l.user_id powinien iść pierwszy.

Jest to istotna wiadomość na ogólnej liście dyskusyjnej PostgreSQL. Poniżej znajduje się dokumentacja ORDER BY klauzula:

Każde wyrażenie może być liczbą porządkową nazwy kolumny wyjściowej (WYBIERZ element listy) lub może to być dowolne wyrażenie utworzone z kolumny wejściowej wartości .

Więc bez aliasów, gdy używane jest wyrażenie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować PostgreSQL na macOS

  2. Importuj bibliotekę psycopg2 nie załadowaną:libssl.1.0.0.dylib

  3. Jak przekonwertować ciąg na znacznik czasu bez strefy czasowej?

  4. PostgreSQL:Jak przekazać parametry z wiersza poleceń?

  5. Identyfikator automatycznego przypisywania Railsów, który już istnieje