gpt4 book ai didi

sql - 如何从投影中的表引用中消除 PostgreSQL 列引用的歧义?

转载 作者:行者123 更新时间:2023-12-05 02:36:58 25 4
gpt4 key购买 nike

假设我有这样的模式:

create table x (t1 int, t2 int);
create table t1 (t1 int, t2 int);
insert into x values (1, 2);
insert into t1 values (1, 2);

现在在 PostgreSQL 中,我可以方便地投影表引用以在结果中创建嵌套行:

select x from x;

制作:

|x     |
|------|
|[1, 2]|

但如果表和列之间存在冲突,这将不起作用:

select t1 from t1;

这只是转化为不合格的列引用:

|t1 |
|---|
|1 |

现在,由于我正在维护一个 SQL 生成器,让我们假设我不能为该表设置别名(因为我可能不知道它包含哪些列名,并且任何别名仍然可能与实际列冲突)。

是否有任何语法可以消除表引用和列引用之间的歧义,例如下面的假设语法?

select t1::the_table_not_the_column from t1

最佳答案

如果我知道列名,这似乎可行:

select row(t1, t2)::t1 as t1 from t1

或者,如果我不知道列名:

select row(t1.*)::t1 as t1 from t1

关于sql - 如何从投影中的表引用中消除 PostgreSQL 列引用的歧义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70108558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com