Rumah >pangkalan data >tutorial mysql >Bagaimana Mengisih Keputusan Pertanyaan PostgreSQL mengikut Susunan Nilai dalam Klausa IN?

Bagaimana Mengisih Keputusan Pertanyaan PostgreSQL mengikut Susunan Nilai dalam Klausa IN?

Patricia Arquette
Patricia Arquetteasal
2025-01-19 10:56:09234semak imbas

How to Sort PostgreSQL Query Results by the Order of Values in an IN Clause?

Isih hasil mengikut senarai nilai IN dalam PostgreSQL

Dalam PostgreSQL, klausa ORDER BY biasanya bertindak pada lajur dalam jadual. Walau bagaimanapun, ia juga boleh digunakan untuk menguatkuasakan pesanan berdasarkan rujukan luaran (seperti klausa IN).

Untuk memastikan hasil pertanyaan sepadan dengan susunan senarai nilai IN, anda boleh menggunakan binaan VALUES() yang diperkenalkan dalam PostgreSQL 8.2.

Penyelesaian:

Buat jadual sementara atau ungkapan jadual biasa (CTE) untuk memetakan nilai IN ke susunan isihan yang diingini:

<code class="language-sql">WITH Ordering AS (
  VALUES
    (1,1),
    (3,2),
    (2,3),
    (4,4)
)</code>

Sertai jadual utama ke jadual sementara ini dan aliaskan kepada x:

<code class="language-sql">SELECT c.*
FROM comments c
JOIN Ordering x ON c.id = x.id
ORDER BY x.ordering</code>

Dengan merujuk lajur ORDER BY dalam jadual sementara dalam klausa ordering, keputusan akan diisih mengikut susunan yang dinyatakan dalam klausa IN.

Atas ialah kandungan terperinci Bagaimana Mengisih Keputusan Pertanyaan PostgreSQL mengikut Susunan Nilai dalam Klausa IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn