[SQL] 어떻게 PostgreSQL의 ORDER BY 절에서 별칭을 사용 하는가?
SQL어떻게 PostgreSQL의 ORDER BY 절에서 별칭을 사용 하는가?
나는 다음과 같은 쿼리를 가지고 :
SELECT
title,
(stock_one + stock_two) AS global_stock
FROM
product
ORDER BY
global_stock = 0,
title;
PostgreSQL의 8.1.23에서 그것을 실행하면이 오류를 얻을 :
쿼리 실패 : ERROR : 열이 "global_stock"존재하지 않는
아무도 나에게 작업에 넣어 도울 수 있는가? 나는 그들 후 사용할 수없는 항목을 먼저 사용 가능한 항목이 필요합니다. 많은 감사합니다!
해결법
-
==============================
1.당신이 방법 BY 항상 주문할 수 있습니다 :
당신이 방법 BY 항상 주문할 수 있습니다 :
select title, ( stock_one + stock_two ) as global_stock from product order by 2, 1
또는 다른 SELECT에 포장 :
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
-
==============================
2.한 가지 해결책은 위치를 사용하는 것입니다 :
한 가지 해결책은 위치를 사용하는 것입니다 :
select title, ( stock_one + stock_two ) as global_stock from product order by 2, 1
그러나 별명은 작동해야하지만 반드시 식입니다. 당신은 "global_stock = 0"에 의해 무엇을 의미합니까? 당신은 다음을 의미합니까 :
select title, ( stock_one + stock_two ) as global_stock from product order by (case when global_stock = 0 then 1 else 0 end) desc, title
from https://stackoverflow.com/questions/11785622/how-to-use-an-alias-in-a-postgresql-order-by-clause by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 포스트 그레스 동적 쿼리 기능 (0) | 2020.05.05 |
---|---|
[SQL] MySQL의 연결 연산자 (0) | 2020.05.04 |
[SQL] 클러스터 인덱스의 성능 향상은 기본 키를 GUID (0) | 2020.05.04 |
[SQL] Microsoft Access를 사용하여 쿼리 결과에서 행 번호 (0) | 2020.05.04 |
[SQL] 쿼리 날짜 식 느린 실행되지만 빠른 문자열 리터럴로 (0) | 2020.05.04 |