sql >> Databasteknik >  >> RDS >> PostgreSQL

postgres kolumn alias problem

I PostgreSQL kan du inte använda uttryck med ett alias i ordning efter. Endast vanliga alias fungerar där. Din fråga bör se ut så här:

   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;

Jag antar att du menar att l2.user_id=l.user_id borde gå först.

Detta är relevant meddelande på PostgreSQL-allmän e-postlista. Följande finns i dokumentationen för ORDER BY klausul:

Varje uttryck kan vara namnet eller ordningsnumret för en utdatakolumn (VÄLJ listobjekt), eller så kan det vara ett godtyckligt uttryck som bildas från inmatningskolumn värden .

Så inga alias när uttryck används.



  1. Hur man gör punkt-i-tid-återställning av MySQL- och MariaDB-data med ClusterControl

  2. Hur man använder delsträngsfunktionen i PostgreSQL och Redshift

  3. Finns det ett versionskontrollsystem för ändringar i databasstrukturen?

  4. Dolda funktioner i Oracle