sql >> Database >  >> RDS >> PostgreSQL

BESTEL DOOR de IN-waardelijst

In Postgres 9,4 of later, dit is eenvoudigste en snelste :

SELECT c.*
FROM   comments c
JOIN   unnest('{1,3,2,4}'::int[]) WITH ORDINALITY t(id, ord) USING (id)
ORDER  BY t.ord;
  • WITH ORDINALITY werd geïntroduceerd met in Postgres 9.4.

  • Er is geen subquery nodig, we kunnen de set-retourfunctie direct als een tabel gebruiken. (A.k.a. "table-functie".)

  • Een letterlijke tekenreeks om de array in te dienen in plaats van een ARRAY-constructor kan bij sommige clients gemakkelijker te implementeren zijn.

  • Kopieer voor het gemak (optioneel) de kolomnaam waaraan we deelnemen (id in het voorbeeld), zodat we kunnen meedoen met een korte USING clausule om slechts één exemplaar van de join-kolom in het resultaat te krijgen.

  • Werkt met elke invoertype. Als uw sleutelkolom van het type text is , geef iets op als '{foo,bar,baz}'::text[] .

Gedetailleerde uitleg:

  • PostgreSQL unnest() met elementnummer


  1. Wat is SQL? Wat is een databank? Relationele databasebeheersystemen (RDBMS) uitgelegd in gewoon Engels.

  2. Hoe om te gaan met een tabelkolom die is genoemd met een gereserveerd SQL-zoekwoord?

  3. Sql Server-replicatie vereist de daadwerkelijke servernaam om verbinding te maken met de server

  4. Draaien van meerdere kolommen in T-SQL