sql >> Database >  >> RDS >> PostgreSQL

postgres kolom alias probleem

In PostgreSQL kunt u geen expressie gebruiken met een alias in volgorde door. Alleen gewone aliassen werken daar. Uw vraag zou er als volgt uit moeten zien:

   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;

Ik neem aan dat je bedoelt dat l2.user_id=l.user_id zou eerst moeten gaan.

Dit is een relevant bericht op de PostgreSQL-algemene mailinglijst. Het volgende staat in de documentatie van ORDER BY clausule:

Elke uitdrukking kan het naam ordinaal nummer zijn van een uitvoerkolom (SELECT lijstitem), of het kan een willekeurige uitdrukking zijn gevormd uit input-column waarden .

Dus geen aliassen wanneer uitdrukking wordt gebruikt.



  1. ORA-12170:TNS:Time-out verbinding opgetreden

  2. Gegevens verwijderen uit Elastisearch

  3. PHP PDO voorbereide verklaringen

  4. Is het mogelijk om een ​​string in MySQL uit te voeren?