programing

동일한 SELECT 절에서 열 별칭 사용

subpage 2023. 11. 5. 14:41
반응형

동일한 SELECT 절에서 열 별칭 사용

할당 중인 동일한 SELECT 절에 열 별칭을 사용할 방법이 있습니까?예를 들어,

SELECT ord_id, candy_id, price, quantity, 
price * quantity AS ext_cost, ext_cost * @tax_rate

MySQL이 "을(를) 인식하지 못하기 때문에 오류를 반환합니다.ext_cost" 에ext_cost * @tax_ratequery. 만약 불가능하다면, 이런 글을 쓸 필요 없이 첫번째 query에 나열된 모든 것이 있는 테이블을 돌려줄 수 있나요?

SELECT ord_id, candy_id, price, quantity, 
price * quantity AS ext_cost, (price * quantity) * @tax_rate

기본적으로, 전 그냥 다시 사용할 방법이 없을까 해서요.ext_costSELECT 쿼리에서.

아니요, 별칭을 참조하는 방법은 없지만 식을 변수에 할당한 다음 동일한 선택 절에 있는 변수를 참조할 수 있습니다.

select 문 변수 할당은 항상 infix 연산자에 의해 수행됩니다.:=. *아인에SETstatement, 둘 중 하나일 수 있습니다.=아니면:=.

예.

SELECT 
    ord_id
  , candy_id
  , price
  , quantity
  , @exc_cost := price * quantity AS exc_cost
  , @exc_cost * @tax_rate AS my_favourite_field
...
<FROM CLAUSE>

조건부로 변수 할당을 수행할 수도 있습니다.

예.

IF(quantity > 90, 
     @exc_cost := price * quantity * 0.95
   , @exc_cost := price * quantity) AS exc_cost

참고 1: 집계 측정치 및 조항별 그룹이 없는 경우, 변수는 열 순서에 따라 평가됩니다.

SELECT @t, @t+2 FROM (SELECT @t := 1) a

출력을 생성합니다.

@t   @t+2
 1      3

MySQL에서는 기준점 앞에 있는 한 동일한 선택에서 선택 열 별칭을 참조할 수 있습니다.

SELECT 
    ord_id,
    candy_id,
    price,
    quantity, 
    price * quantity AS ext_cost,
    (SELECT ext_cost) * @tax_rate as retail_rate

이제 포스트그레스에서 이걸 할 줄 알았더라면.

하위 쿼리 사용

SELECT t1.ord_id, t1.candy_id, t1.price, t1.quantity, t2.ext_cost, t2.ext_cost * @tax_rate
FROM table1 t1
JOIN (SELECT t.ord_id, t.price * t.quantity AS ext_cost FROM table1 t) t2
ON t2.ord_id = t1.ord_id

언급URL : https://stackoverflow.com/questions/28860303/using-column-alias-in-same-select-clause

반응형