복붙노트

[SQL] WHERE 절에서 참조 별칭

SQL

WHERE 절에서 참조 별칭

psql의에서, WHERE 절에 참조 별칭에 시도 :

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

이 WHERE 절에 참조 별칭에 수 있습니까?

해결법

  1. ==============================

    1.이것은 SQL 같이 불가능 실행 순서가 먼저 인, WHERE 절하고 선택한다. 절은 실행지고있는 시점에서, 당신이 별칭으로 정의 된 것을 모르고 그래서 당신은 오류가 발생합니다.

    이것은 SQL 같이 불가능 실행 순서가 먼저 인, WHERE 절하고 선택한다. 절은 실행지고있는 시점에서, 당신이 별칭으로 정의 된 것을 모르고 그래서 당신은 오류가 발생합니다.

    이 같은 쿼리를 다시 작성해야 ..

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

    2.이 방법을 시도

    이 방법을 시도

    select * from (SELECT
        SUBSTRING(pk, 6, 2)::INT AS _year
    FROM
        listing) a where _year>90
    
  3. from https://stackoverflow.com/questions/37650246/reference-alias-in-where-clause by cc-by-sa and MIT license