Sql 这是什么;";做

Sql 这是什么;";做,sql,postgresql,table-alias,Sql,Postgresql,Table Alias,我在理解以下示例时遇到问题: t(…)括号内的内容成为列名,但是t本身是什么?我在这里问这个问题是因为文档没有解释它,而且单个字母函数是无法读取的。事实上,这些文档甚至没有解释后面应该是什么;我们唯一得到的就是这个例子 似乎我可以用任何其他标识符替换t,它仍然有效。它是集合的别名,以便能够在列列表中引用它,例如: SELECT t.*,pg_database .datname FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n) join pg_dat

我在理解以下示例时遇到问题:

t(…)
括号内的内容成为列名,但是
t
本身是什么?我在这里问这个问题是因为文档没有解释它,而且单个字母函数是无法读取的。事实上,这些文档甚至没有解释
后面应该是什么;我们唯一得到的就是这个例子


似乎我可以用任何其他标识符替换
t
,它仍然有效。

它是集合的别名,以便能够在列列表中引用它,例如:

SELECT t.*,pg_database .datname 
FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n) 
join pg_database on true where datname = 'postgres'
          ls          | n  | datname
----------------------+----+----------
 pg_dynshmem          |  1 | postgres
 postmaster.pid       |  2 | postgres
 PG_VERSION           |  3 | postgres
 base                 |  4 | postgres

您要查找的语法是:


t
是任意表别名;你可以给它起任何你想要的有效名字。

它的别名是一个集合。谢谢!我想我根本没有看文档的规范部分。
SELECT t.*,pg_database .datname 
FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n) 
join pg_database on true where datname = 'postgres'
          ls          | n  | datname
----------------------+----+----------
 pg_dynshmem          |  1 | postgres
 postmaster.pid       |  2 | postgres
 PG_VERSION           |  3 | postgres
 base                 |  4 | postgres
function_call [WITH ORDINALITY] [[AS] table_alias [(column_alias [, ... ])]]