我想在 PostgreSQL 选择块中选择多行。然后我尝试使用 row 函数在 PostgreSQL 15 中执行查询,如下所示:
select c.a from ( select row(1 as a, 2 as b) as c)
显示错误ERROR: syntax error at or near "as
,我也尝试过:
select (c).a from ( select row(1 , 2 ) as c(a,b))
我是不是漏掉了什么?或者如何获取行值?我发现这个方法很好用:
select * from ( select row(1 , 2 ) ) a
如何得到 1 或 2?我试过:
select a[0] from ( select row(1 , 2 ) ) a
似乎没有起作用。
构造函数的结果
ROW()
是一个匿名复合数据类型record
:的属性
record
没有名称。但是ROW()
构造函数会将名称等赋给f1
属性f2
。transformRowExpr()
参见src/backend/parser/parse_expr.c
:您可以使用 SQL 来查看:
您还可以在查询中使用这些名称:
需要用括号括起来,
col
以便解析器不会将其视为表别名。