>데이터 베이스 >MySQL 튜토리얼 >IN 목록의 값 순서에 따라 PostgreSQL 쿼리 결과를 정렬하는 방법은 무엇입니까?

IN 목록의 값 순서에 따라 PostgreSQL 쿼리 결과를 정렬하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-19 11:06:11740검색

How to Order PostgreSQL Query Results Based on the Order of Values in an IN List?

IN 목록의 값 순서에 따라 PostgreSQL 쿼리 결과 정렬

PostgreSQL에서는 WHERE 절의 IN 구조를 사용하여 열과 일치하는 값 집합을 지정할 수 있습니다. 그러나 IN 목록의 값 순서에 따라 결과 행을 정렬하는 것은 어려울 수 있습니다.

다행히 PostgreSQL 8.2에는 특정 값과 순서가 포함된 가상 테이블을 생성할 수 있는 VALUES() 구조가 도입되었습니다. 이를 통해 IN 목록의 값 순서에 따라 결과를 정렬할 수 있습니다.

이를 달성하려면 다음 구문을 사용하세요.

<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>

이 예에서는 VALUES() 구조를 사용하여 "x"라는 가상 테이블을 생성합니다. 이 가상 테이블의 각 행은 IN 목록의 값과 해당 순서를 나타냅니다. 그런 다음 "id" 열을 기반으로 "comments" 테이블을 "x" 테이블과 결합하고 "ordering" 열을 기준으로 결과를 정렬합니다. 이렇게 하면 검색된 행이 IN 목록(1,3,2,4)에 지정된 순서대로 정렬됩니다.

위 내용은 IN 목록의 값 순서에 따라 PostgreSQL 쿼리 결과를 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.