PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

ORDER DENGAN daftar nilai IN

Di Postgres 9.4 atau yang lebih baru, ini paling sederhana dan tercepat :

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 diperkenalkan dengan di Postgres 9.4.

  • Tidak perlu subquery, kita bisa langsung menggunakan fungsi set-returning seperti tabel. (A.k.a. "fungsi-tabel".)

  • Sebuah literal string untuk diserahkan dalam array alih-alih konstruktor ARRAY mungkin lebih mudah diterapkan dengan beberapa klien.

  • Untuk kenyamanan (opsional), salin nama kolom tempat kita bergabung (id dalam contoh), sehingga kita dapat bergabung dengan USING singkat klausa untuk hanya mendapatkan satu contoh kolom gabungan dalam hasil.

  • Bekerja dengan apa saja tipe masukan. Jika kolom kunci Anda bertipe text , berikan sesuatu seperti '{foo,bar,baz}'::text[] .

Penjelasan detail:

  • PostgreSQL unnest() dengan nomor elemen


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django JSONField di dalam ArrayField

  2. Dalam fungsi pemicu, cara mendapatkan bidang mana yang diperbarui

  3. Tidak ada driver yang cocok ditemukan saat menyertakan driver yang dibutuhkan dengan maven-assembly-plugin

  4. Bagaimana cara menghitung hari kecuali hari Minggu antara dua tanggal di Postgres?

  5. Kunci asing ke salah satu dari banyak tabel?