Home >Database >Mysql Tutorial >How to Order PostgreSQL Query Results Based on the Order of Values in an IN List?
Sort PostgreSQL query results based on the order of values in the IN list
In PostgreSQL, the IN structure in the WHERE clause allows you to specify a set of values that match a column. However, sorting the result rows based on the order of the values in the IN list can be a challenge.
Fortunately, PostgreSQL 8.2 introduces the VALUES() structure, which allows you to create a virtual table containing specific values and order. This allows us to sort the results based on the order of the values in the IN list.
To achieve this, use the following syntax:
<code class="language-sql">select c.* from comments c join ( values (1,1), (3,2), (2,3), (4,4) ) as x (id, ordering) on c.id = x.id order by x.ordering</code>
In this example, we use the VALUES() structure to create a virtual table named "x". Each row in this virtual table represents a value in the IN list and its corresponding order. We then join the "comments" table with the "x" table based on the "id" column and sort the results by the "ordering" column. This ensures that the retrieved rows are ordered in the order specified in the IN list: (1,3,2,4).
The above is the detailed content of How to Order PostgreSQL Query Results Based on the Order of Values in an IN List?. For more information, please follow other related articles on the PHP Chinese website!