>데이터 베이스 >MySQL 튜토리얼 >SQL WHERE 절에서 별칭을 사용할 수 있나요?

SQL WHERE 절에서 별칭을 사용할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-26 15:47:10756검색

Can I Use Aliases in SQL WHERE Clauses?

WHERE 절에서 별칭 참조

SQL에서는 쿼리 내 명령문의 실행 순서가 중요합니다. 특히 WHERE 절은 SELECT 문보다 먼저 실행됩니다. 즉, WHERE 절에서 별칭을 참조할 때는 별칭을 사용하기 전에 정의되어 있어야 합니다.

원래 쿼리 및 오류

다음 쿼리는 WHERE 절에 별칭(_year)을 사용합니다.

SELECT
    SUBSTRING(pk, 6, 2)::INT AS _year
FROM
    listing
WHERE
    _year > 90

그러나 이 쿼리는 오류:

ERROR:  column "_year" does not exist
LINE 1: ...STRING (pk, 6, 2)::INT AS _year FROM listing WHERE _year > 90...
                                                              ^
********** Error **********

ERROR: column "_year" does not exist

이 오류는 SELECT 문까지 별칭(_year)이 정의되지 않았기 때문에 발생합니다.

한계를 극복

SQL 문의 실행 순서로 인해 WHERE 절에서 별칭을 직접 참조하는 것은 불가능합니다. 이러한 제한을 피하려면 다음과 같이 쿼리를 다시 작성하십시오.

SELECT
    SUBSTRING(pk, 6, 2)::INT AS _year
FROM
    listing
WHERE
SUBSTRING(pk, 6, 2)::INT > 90

이 쿼리에서는 _year를 계산하는 표현식이 WHERE 절에서 반복됩니다. 별칭을 사용하는 것만큼 간결하지는 않지만 _year 값이 비교에 사용되기 전에 계산됩니다.

위 내용은 SQL WHERE 절에서 별칭을 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.