Reference alias in WHERE clause

后端 未结 2 1502
一向
一向 2020-11-30 15:41

In psql, trying to reference alias in WHERE clause:

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


        
相关标签:
2条回答
  • 2020-11-30 16:12

    Try this way

    select * from (SELECT
        SUBSTRING(pk, 6, 2)::INT AS _year
    FROM
        listing) a where _year>90
    
    0 讨论(0)
  • 2020-11-30 16:15

    This is not possible as in sql, the order of execution is first, the where clause and then the select. At the time where clause is getting executed, it does not know what you have defined as an alias and so you will get that error.

    You need to rewrite your query like this..

    SELECT
        SUBSTRING(pk, 6, 2)::INT AS _year
    FROM
        listing
    WHERE
    SUBSTRING(pk, 6, 2)::INT > 90
    
    0 讨论(0)
提交回复
热议问题