> 데이터 베이스 > MySQL 튜토리얼 > 동일한 SQL SELECT 문 내의 후속 표현식에 열 별칭을 사용할 수 있습니까?

동일한 SQL SELECT 문 내의 후속 표현식에 열 별칭을 사용할 수 있습니까?

Susan Sarandon
풀어 주다: 2025-01-14 09:31:42
원래의
144명이 탐색했습니다.

Can I Use Column Aliases in Subsequent Expressions Within the Same SQL SELECT Statement?

이후 표현식의 SQL SELECT 문에서 열 별칭 사용

SQL에서는 동일한 SELECT 문의 후속 표현식에 열 별칭을 사용하려는 상황이 발생할 수 있습니다. 그러나 이렇게 하면 질문에 설명된 것과 유사한 오류가 발생할 수 있습니다.

이 제한이 적용되는 이유는 SELECT 문을 평가할 때 열 별칭이 함께 처리되기 때문입니다. 따라서 동일한 SELECT 문 내에서는 별칭을 사용할 수 없습니다.

해결책: 하위 쿼리에 쿼리를 캡슐화합니다.

이 문제를 해결하려면 원래 쿼리를 하위 쿼리에 캡슐화할 수 있습니다. 그러면 하위 쿼리 외부에서 열 별칭을 사용할 수 있는 새 범위가 생성됩니다.

다음은 ROUND(avg_time * cnt, 2) 표현식에서 열 별칭 avg_time 및 cnt를 사용하도록 쿼리를 수정하는 방법입니다.

<code class="language-sql">SELECT stddev_time, max_time, avg_time, min_time, cnt, 
       ROUND(avg_time * cnt, 2) as slowdown
FROM (
        SELECT 
            COALESCE(ROUND(stddev_samp(time), 2), 0) as stddev_time, 
            MAX(time) as max_time, 
            ROUND(AVG(time), 2) as avg_time, 
            MIN(time) as min_time, 
            COUNT(path) as cnt, 
            path
        FROM 
            loadtime
        GROUP BY
            path
        ORDER BY
            avg_time DESC
        LIMIT 10
   ) X;</code>
로그인 후 복사

쿼리를 하위 쿼리에 캡슐화하면 외부 SELECT 문에서 별칭을 사용할 수 있으므로 ROUND(avg_time * cnt, 2) 표현식을 성공적으로 평가할 수 있습니다.

위 내용은 동일한 SQL SELECT 문 내의 후속 표현식에 열 별칭을 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿