Edited at

MySQLとPostgreSQLのSELECT句でのサブクエリ仕様相違

More than 3 years have passed since last update.

MySQLだと以下の様にnum1と別名を付けたものを、同じSELECT句内で使用することが可能なのですが、PostgreSQLだと不可能でした。

SELECT 1 as num1, (select(num1 + 1)) as num2

これは、MySQLの制約のゆるさ故のようですが、これをPostgreSQLやろうとした場合、以下のようにすることで可能なようです。

WITH tbl AS (SELECT 1 as num1)

SELECT num1, num1 + 1 AS num2 from tbl