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

postgres kolonne alias problem

I PostgreSQL kan du ikke bruge udtryk med et alias i rækkefølge efter. Kun almindelige aliasser virker der. Din forespørgsel skulle se sådan ud:

   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;

Jeg går ud fra, at du mener l2.user_id=l.user_id burde gå først.

Dette er relevant besked på PostgreSQL-generelle postliste. Følgende er i dokumentationen til ORDER BY klausul:

Hvert udtryk kan være navnet eller ordinært tal på en outputkolonne (VÆLG listeelement), eller det kan være et vilkårligt udtryk dannet fra input-kolonne værdier .

Så ingen aliaser, når udtryk bruges.



  1. Brug af Substr med Instr til at udtrække en streng i Oracle

  2. Admin-scripts i R12.2 Ebuisness Suite

  3. "Forespørgsel ikke tilladt i Waitfor" Fejl 101 i SQL Server

  4. Sikring af din MySQL-installation