PostgreSQL에서 특수 사례를 사용하여 값 정렬
이 토론에서는 "tasks"라는 PostgreSQL 테이블의 데이터 정렬을 중심으로 설명합니다. 각 작업에는 "정렬"이라는 선택적 필드가 있습니다. 목표는 정렬 값이 "-1"인 작업을 제외하고 다른 모든 항목보다 "정렬" 값이 없는 정렬 작업의 우선 순위를 지정하는 것입니다. 이 작업은 다른 모든 항목보다 먼저 표시되어야 합니다.
다음 샘플 데이터를 고려하세요.
id | f_id | name | sort |
---|---|---|---|
1 | 1 | zeta | -1 |
2 | 1 | alpha | 1 |
3 | 1 | gamma | 3 |
4 | 1 | beta | 2 |
5 | 1 | delta | |
6 | 1 | epsilon |
COALESCE(sort,99999)만 사용하면 null이 아닌 값 뒤에 null 값이 그룹화되지만 다음과 같은 특별한 경우는 해결되지 않습니다. "-1."
솔루션은 PostgreSQL의 부울 데이터 유형을 사용하여 원하는 정렬 순서를 달성합니다.
이 쿼리는 비교 "(sort IS NOT DISTINCT)라는 사실을 활용합니다. FROM -1)"은 자체적으로 TRUE로 평가되는 "-1"을 제외한 모든 값에 대해 FALSE로 평가됩니다. 먼저 이 표현식으로 정렬하면 정렬 값에 관계없이 "-1" 값이 순서 끝에 배치됩니다.
DESC 키워드를 사용하는 대체 접근 방식도 제공됩니다.
두 가지 방법 모두 "정렬" 값을 사용하지 않고 효과적으로 작업을 정렬하는 동시에 null이 아닌 다른 모든 정렬 값 뒤에 "-1" 값이 표시되도록 합니다.
위 내용은 Null 및 특수 사례(-1) 값을 사용하여 PostgreSQL 데이터를 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!