PostgreSQL WITH .. AS() 难点

PostgreSQL WITH .. AS () difficulties

我正在尝试使用 postgresql WITH AS () 构造,但出现错误:

即使是像这样的简单查询:

WITH a AS (
    SELECT '2'
)
SELECT a

我得到了:

-->> ERROR: column "a" does not exist LINE 4: SELECT a

我哪里错了?谢谢

试试这个 sql 代码:

WITH a AS (
    SELECT '2'
)
SELECT * FROM a;

最简单和最有用的是声明列名:

with a(a) as (select '2')
select a from a;

但是如果你只是 select table:

with a as (select '2')
select a from a;
  a  
-----
 (2)

它将 return 行值类型 a 这可能对您有用,也可能对您没有用。