↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.0 / 6.5 / 6.4
历史版本PostgreSQL 6.4 已于 2003 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

第 9 章 操作符

摘要

描述Postgres中可用的内建操作符。

Postgres 为系统类型提供了大量的 内建操作符。 这些操作符声明在系统目录 pg_operator 中。pg_operator 中的每个项都包含 实现该操作符的过程的名称以及输入和输出类型的 类 OIDs。

要查看“||”字符串连接操作符的所有变体,可以试试

    SELECT oprleft, oprright, oprresult, oprcode
    FROM pg_operator WHERE oprname = '||';

oprleft|oprright|oprresult|oprcode
-------+--------+---------+-------
     25|      25|       25|textcat
   1042|    1042|     1042|textcat
   1043|    1043|     1043|textcat
(3 rows)

用户可以使用操作符名称来调用操作符,例如:

select * from emp where salary < 40000;

或者,用户也可以直接调用实现这些操作符的 函数。在这种情况下,上面的查询将表达为:

select * from emp where int4lt(salary, 40000);

psql 有一个命令(\dd)用来显示这些操作符。

9.1. 词法优先级

操作符有优先级,目前优先级被硬编码在解析器中。 大多数操作符具有相同的优先级并且不结合。这可能导致 不直观的行为;例如布尔操作符"<"和">"的优先级 与布尔操作符"<="和">="不同。

表 9.1. 操作符排序(优先级递减)

元素 优先级 描述
UNION left SQL select 构造
::   Postgres 类型转换
[ ] left 数组定界符
. left 表/列定界符
- right 一元负号
; left 语句结束、对数
: right 求幂
| left 间隔的起点
* / left 乘法、除法
+ - left 加法、减法
IS   测试 TRUE、FALSE、NULL
ISNULL   测试 NULL
NOTNULL   测试非 NULL
(所有其他操作符)   内建和用户定义
IN   集合成员
BETWEEN   包含
LIKE   字符串模式匹配
< >   布尔不等
= right 等于
NOT right 非
AND left 逻辑交
OR left 逻辑并


提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。