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

BESTIL EFTER IN-værdilisten

I Postgres 9.4 eller senere, dette er enkleste og hurtigste :

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 blev introduceret med i Postgres 9.4.

  • Intet behov for en underforespørgsel, vi kan bruge sæt-retur-funktionen som en tabel direkte. (A.k.a. "tabel-funktion".)

  • En streng bogstavelig til at indlevere arrayet i stedet for en ARRAY-konstruktør kan være lettere at implementere med nogle klienter.

  • For nemheds skyld (valgfrit), kopier kolonnenavnet, vi tilslutter os (id i eksemplet), så vi kan deltage med en kort USING klausul for kun at få en enkelt forekomst af join-kolonnen i resultatet.

  • Fungerer med alle input type. Hvis din nøglekolonne er af typen text , angiv noget som '{foo,bar,baz}'::text[] .

Detaljeret forklaring:

  • PostgreSQL unnest() med elementnummer


  1. Access 2021 For Dummies Cheat Sheet

  2. Hvordan kontrollerer man, om en kolonne eksisterer, før man tilføjer den til en eksisterende tabel i PL/SQL?

  3. 4 måder at få en visningsdefinition ved hjælp af Transact-SQL

  4. Gendannelse af SQL Server-masterdatabasen