집 >데이터 베이스 >MySQL 튜토리얼 >PostgreSQL의 ORDER BY 절에서 별칭을 올바르게 사용하는 방법은 무엇입니까?
PostgreSQL: ORDER BY에서 ALIAS를 사용하여 결과 정렬
PostgreSQL에서 ORDER BY 절에 별칭을 사용하면 문제가 발생할 수 있습니다. 제공된 쿼리에서 볼 수 있듯이 ORDER BY에서 별칭을 직접 참조하면 오류 메시지가 발생할 수 있습니다.
오류 설명:
PostgreSQL에서는 ORDER BY 절 참조가 필요합니다. 결과 집합에 존재하는 열입니다. 이 쿼리에서 별칭 "global_stock"은 최종 결과 집합의 열과 일치하지 않으므로 오류가 발생합니다.
해결책:
두 가지 접근 방식이 있습니다. 이 문제를 해결하려면:
방법 1: SELECT 재정렬 목록:
별칭이 두 번째(또는 후속) 표현식으로 표시되도록 SELECT 목록의 순서를 변경합니다. 다음 쿼리가 작동합니다.
SELECT title, (stock_one + stock_two) AS global_stock FROM product ORDER BY 2, 1;
이 순서를 다시 지정하면 별칭이 ORDER BY 절에서 올바르게 참조됩니다.
방법 2: 하위 쿼리 사용:
원래 선택을 래핑하는 하위 쿼리를 만들고 외부 쿼리의 ORDER BY에 별칭을 사용합니다. 조항. 예:
SELECT * FROM ( SELECT title, (stock_one + stock_two) AS global_stock FROM product ) x ORDER BY (CASE WHEN global_stock = 0 THEN 1 ELSE 0 END) DESC, title;
이 하위 쿼리 접근 방식에서는 별칭 "global_stock"이 중첩된 SELECT 문 내에서 사용되며 중첩된 결과 집합은 외부 쿼리에서 정렬됩니다.
위 내용은 PostgreSQL의 ORDER BY 절에서 별칭을 올바르게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!