`EXISTS`的运算符优先级

问题描述 投票:0回答:1

在 Postgres 中,

EXISTS
运算符是否具有最高优先级?例如:

SELECT 1 + EXISTS (SELECT 1)::int;

这里似乎缺少:https://www.postgresql.org/docs/7.2/sql-precedence.html。虽然最高的是

::
,那么
EXISTS
会更高吗?

换句话说,它是这样评估的:

select (exists (select 1))::int;

而不是像这样,如果你尝试,会出错:

select exists ((select 1)::int);

这意味着

EXISTS
运算符的优先级高于
CAST
运算符。这是正确的吗?

sql postgresql
1个回答
0
投票

房间里的大象:

EXISTS
不是操作员

它是一个语法元素。手册在“子查询表达式”一章中列出了它。 运算符优先级不适用。

EXISTS
any 运算符之前“绑定”。

因此,您也会在

pg_operator
中找不到相应的条目。

© www.soinside.com 2019 - 2024. All rights reserved.