gpt4 book ai didi

Sql ONLY 关键字

转载 作者:行者123 更新时间:2023-12-04 19:24:26 28 4
gpt4 key购买 nike

在 SQL 语法中,我发现奇怪的规则表明 select * from ONLY (t1)是有效的 SQL。

我的问题是:什么是 ONLY在这种情况下是什么意思?

它在规范的“7.6 table reference”部分:

<table primary> ::=
<table or query name> [ [ AS ] <correlation name> [ <left paren> <derived column list> <right paren> ] ]
| <derived table> [ AS ] <correlation name> [ <left paren> <derived column list> <right paren> ]
| <lateral derived table> [ AS ] <correlation name> [ <left paren> <derived column list> <right paren> ]
| <collection derived table> [ AS ] <correlation name> [ <left paren> <derived column list> <right paren> ]
| <table function derived table> [ AS ] <correlation name> [ <left paren> <derived column list> <right paren> ]
| <only spec> [ [ AS ] <correlation name> [ <left paren> <derived column list> <right paren> ] ]
| <left paren> <joined table> <right paren>

<only spec> ::= ONLY <left paren> <table or query name> <right paren>

最佳答案

如果表参与表继承,则 ONLY 关键字用于限制查询中使用的表。

在规范中进一步解释为:

If ONLY is specified, then the result of TP is a table that consists of every row in T, except those rows that have a subrow in a proper subtable of T



据我所知,目前仅支持 Postgres

效果可以通过下面的例子看到:
create table base (id integer, some_data varchar(100));
create table child () inherits (base);

insert into base values (1, 'base');
insert into child values (2, 'child');

下列:
select *
from base;

返回:

id | some_data
---+----------
1 | base
2 | child

而以下内容:
select *
from only (base);

返回:

id | some_data
---+----------
1 | base

在线示例: http://rextester.com/JVUM87016

关于Sql ONLY 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50681643/

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