函数和操作符
操作符可以对一个或多个操作数进行处理,其位置可能处于操作数之前、之后或者两个操作数中间。处理完成之后,返回处理结果。
函数是对一些业务逻辑的封装,以完成特定的功能。函数可以有参数,也可以没有参数。函数具有返回类型,执行结束后,会返回执行结果。
对于系统函数,用户可以进行修改,但是修改之后系统函数的语义可能会发生改变,从而导致系统控制紊乱。正常情况下不允许用户手动修改系统函数。
函数分为系统函数和语法函数。存在部分函数既是系统函数又是语法函数,具体请参见表1。
- 系统函数:调用注册机制,注册到pg_proc系统表中,通过查询pg_proc系统表能够获取系统函数元信息。
- 语法函数:由SQL语法规则直接定义,具有专属的语法格式。语法函数列表请参见表1。
| 函数名称 | ORA兼容模式 | MYSQL兼容模式 | 其他兼容模式 |
|---|---|---|---|
| adddate | 不涉及 | 语法函数&系统函数 | 语法函数&系统函数 |
| cast | 语法函数 | 语法函数 | 语法函数 |
| coalesce | 语法函数 | 语法函数 | 语法函数 |
| collation for | 语法函数 | 语法函数 | 语法函数 |
| convert | 系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| current_catalog | 语法函数 | 语法函数 | 语法函数 |
| current_date | 语法函数 | 语法函数 | 语法函数 |
| current_role | 语法函数 | 语法函数 | 语法函数 |
| current_schema | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| current_time | 语法函数 | 语法函数 | 语法函数 |
| current_timestamp | 语法函数&系统函数 | 语法函数 | 语法函数 |
| current_user | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| curtime | 不涉及 | 系统函数 | 不涉及 |
| date_add | 不涉及 | 语法函数&系统函数 | 语法函数&系统函数 |
| date_sub | 不涉及 | 语法函数&系统函数 | 语法函数&系统函数 |
| db_jsobj | 不涉及 | 语法函数 | 语法函数 |
| dbtimezone | 语法函数&系统函数 | 不涉及 | 不涉及 |
| default | 不涉及 | 语法函数 | 不涉及 |
| extract | 语法函数 | 语法函数 | 语法函数 |
| get_format | 不涉及 | 语法函数&系统函数 | 语法函数&系统函数 |
| greatest | 语法函数 | 语法函数 | 语法函数 |
| ifnull | 不涉及 | 语法函数 | 不涉及 |
| last_day | 系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| least | 语法函数 | 语法函数 | 语法函数 |
| lnnvl | 语法函数 | 不涉及 | 不涉及 |
| localtime | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| localtimestamp | 语法函数 | 语法函数 | 语法函数 |
| now | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| nullif | 语法函数 | 语法函数 | 语法函数 |
| nvl | 语法函数 | 语法函数 | 语法函数 |
| nvl2 | 语法函数 | 不涉及 | 不涉及 |
| overlay | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| position | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| regexp_like | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| rownum | 语法函数 | 语法函数 | 语法函数 |
| sessiontimezone | 语法函数 | 不涉及 | 不涉及 |
| session_user | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| subdate | 不涉及 | 语法函数&系统函数 | 语法函数&系统函数 |
| substr | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| substring | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| sysdate | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| timestampadd | 不涉及 | 语法函数 | 语法函数 |
| timestampdiff | 不涉及 | 语法函数 | 不涉及 |
| treat | 语法函数 | 语法函数 | 语法函数 |
| trim | 语法函数 | 语法函数 | 语法函数 |
| user | 语法函数 | 语法函数 | 语法函数 |
| utc_date | 不涉及 | 系统函数 | 不涉及 |
| utc_time | 不涉及 | 系统函数 | 不涉及 |
| utc_timestamp | 不涉及 | 系统函数 | 不涉及 |
| xmlcast | 语法函数 | 不涉及 | 不涉及 |
| xmlconcat | 语法函数 | 语法函数 | 语法函数 |
| xmlelement | 语法函数 | 语法函数 | 语法函数 |
| xmlexists | 语法函数&系统函数 | 语法函数&系统函数 | 语法函数&系统函数 |
| xmlforest | 语法函数 | 语法函数 | 语法函数 |
| xmlparse | 语法函数 | 语法函数 | 语法函数 |
| xmlpi | 语法函数 | 语法函数 | 语法函数 |
| xmlquery | 语法函数 | 不涉及 | 不涉及 |
| xmlroot | 语法函数 | 语法函数 | 语法函数 |
| xmlserialize | 语法函数 | 语法函数 | 语法函数 |
| year | 不涉及 | 系统函数 | 不涉及 |
当GUC参数behavior_compat_options含有'enable_funcname_with_argsname'选项时,投影别名显示完整函数。
- 逻辑操作符
- 比较操作符
- 字符处理函数和操作符
- 二进制字符串函数和操作符
- 位串函数和操作符
- 模式匹配操作符
- 数字操作函数和操作符
- 时间和日期处理函数和操作符
- 类型转换函数
- 几何函数和操作符
- 网络地址函数和操作符
- 文本检索函数和操作符
- JSON/JSONB函数和操作符
- HLL函数和操作符
- SEQUENCE函数
- 数组函数和操作符
- 范围函数和操作符
- 聚集函数
- 窗口函数
- 安全函数
- 账本数据库的函数
- 密态函数和操作符
- 返回集合的函数
- 重载查询函数
- 条件表达式函数
- 系统信息函数
- 系统管理函数
- SPM计划管理函数
- 统计信息函数
- 触发器函数
- HashFunc函数
- 提示信息函数
- 故障注入系统函数
- 重分布函数
- 分布列推荐函数
- 内部函数
- 敏感数据发现函数
- 动态数据脱敏函数
- 层次递归查询函数
- hotkey特性函数
- Global SysCache特性函数
- 数据损坏检测修复函数
- Multixact回收函数
- XML类型函数
- XMLTYPE类型函数
- 数据透视函数
- Global Plsql Cache特性函数
- 通用标识符函数
- SQL限流函数
- SQL工具函数
- 多租数据库函数
- 全局临时表函数
- DATABASE LINK函数
- GSMonitor系统资源统计函数
- 排序计算函数
- 自治事务特性函数
- DSL规则管理函数
- ROWID类型函数
- 失效重编译函数
- 其他系统函数
- 废弃函数
- 向量数据函数与操作符