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 [, ... ])]]