室内的大象:>Operator propers 不适用。 EXISTS
“bids”在any 运算人之前, 。
因此,您在pg_operator 中也找不到相应的条目。
因此,在您的例子中, ::
排名第2 位在操作员优先排序中并不代表切分。您的测试并不理想,但两者中任何一个都会导致整数1:
SELECT EXISTS (SELECT 1)::int;
这一点毫不含糊:
SELECT EXISTS (SELECT foo )::int;
如果 ::int
优先, 会出错吗?
-- invalid input syntax for type integer: "foo"
SELECT (SELECT foo )::int;
如果您还需要更多证据:即使操作员优先排序中的第1号,列分隔符(.
)也无法克服 EXISTS
的引力拉动:
CREATE TABLE t (id int);
SELECT (SELECT t FROM t LIMIT 1).id; -- valid
SELECT EXISTS (SELECT t FROM t LIMIT 1).id; -- invalid!
"https://dbfiddle.uk/USCDH3pN" rel="无随从的 noreferrer" > fiddle
第二个 SELECT
试图将 .id
附加到布林值 true
上,这是一个语法错误。