sql >> Databáze >  >> RDS >> PostgreSQL

problém alias sloupce postgres

V PostgreSQL nemůžete použít výraz s aliasem v pořadí podle. Fungují tam pouze obyčejné aliasy. Váš dotaz by měl vypadat takto:

   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;

Předpokládám, že máte na mysli l2.user_id=l.user_id měl by jít první.

Toto je relevantní zpráva na PostgreSQL-general mailing listu. Následující text je v dokumentaci ORDER BY klauzule:

Každý výraz může být názvem pořadové číslo výstupního sloupce (SELECT položka seznamu), nebo to může být libovolný výraz vytvořený z vstupního sloupce hodnoty .

Při použití výrazu tedy žádné aliasy.



  1. Příklad hromadného shromažďování Oracle pomocí objektu typu typ řádku kurzoru

  2. Tipy, jak přesunout databázi SQL Server z jednoho serveru na druhý - SQL výuka od Rajana Singha

  3. Připojení k Sage z Javy

  4. Jak v rámci spouštěcí funkce získat, která pole se aktualizují