WHERE 절에서 열 별칭 참조
다음 SQL 쿼리는 WHERE 절에 열 별칭을 사용합니다.
<code class="language-sql">SELECT logcount, logUserID, maxlogtm , DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff FROM statslogsummary WHERE daysdiff > 120</code>
이 쿼리를 실행하면 "잘못된 열 이름 daysdiff"라는 오류가 발생합니다. daysdiff와 같은 열 별칭은 일반적으로 WHERE 절에서 직접 액세스할 수 없기 때문입니다.
이 문제를 해결하기 위해 SQL에서 SELECT 문을 먼저 실행한 다음 WHERE 절을 실행하도록 할 수 있습니다. 이는 괄호나 CTE(공용 테이블 표현식)를 사용하여 달성할 수 있습니다.
방법 1: 괄호 사용
아래 수정된 쿼리에서는 SELECT 문이 괄호로 묶여 WHERE 절 앞에서 실행되도록 강제합니다.
<code class="language-sql">SELECT * FROM ( SELECT logcount, logUserID, maxlogtm, DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff FROM statslogsummary ) as innerTable WHERE daysdiff > 120</code>
방법 2: CTE 사용
또는 아래 예와 같이 CTE를 사용할 수도 있습니다.
<code class="language-sql">WITH CTE AS ( SELECT logcount, logUserID, maxlogtm, DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff FROM statslogsummary ) SELECT * FROM CTE WHERE daysdiff > 120</code>
괄호나 CTE를 사용하면 SQL 작업의 논리적 순서를 제어할 수 있으므로 WHERE 절에서 열 별칭을 참조하고 이러한 오류를 해결할 수 있습니다.
위 내용은 WHERE 절에 열 별칭을 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!