PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

ПОРЪЧАЙТЕ ПО списъка със стойности IN

В Postgres 9.4 или по-късно, това енай-просто и най-бързо :

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 беше въведен с в Postgres 9.4.

  • Няма нужда от подзаявка, можем да използваме функцията за връщане на набор като таблица директно. (известен още като "функция на таблица".)

  • Низовият литерал за предаване на масива вместо конструктор на ARRAY може да е по-лесен за изпълнение с някои клиенти.

  • За удобство (по избор), копирайте името на колоната, към която се присъединяваме (id в примера), така че можем да се присъединим с кратък USING клауза, за да получите само един екземпляр на колоната за присъединяване в резултата.

  • Работи с всякакви тип вход. Ако вашата ключова колона е от тип text , осигурете нещо като '{foo,bar,baz}'::text[] .

Подробно обяснение:

  • PostgreSQL unnest() с номер на елемент


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Експортиране на PostgreSQL заявка в csv файл с помощта на Python

  2. Защо не мога да използвам псевдоними на колони в следващия израз SELECT?

  3. Генериране на данни и качество на хардуера

  4. Вземете последния ден от месеца в PostgreSQL

  5. Грешка:Няма модул с име psycopg2.extensions