PostgreSQL 内置函数

PostgreSQL 提供了丰富的内置函数,用于执行各种操作,如数学计算、字符串处理、日期时间操作等。以下是一些常用的 PostgreSQL 内置函数及其说明:

1. 聚合函数

  • SUM(): 计算某列的总和。

    sql 复制代码
    SELECT SUM(column_name) FROM table_name;
  • AVG(): 计算某列的平均值。

    sql 复制代码
    SELECT AVG(column_name) FROM table_name;
  • COUNT(): 计算某列的行数。

    sql 复制代码
    SELECT COUNT(column_name) FROM table_name;
  • MIN(): 返回某列的最小值。

    sql 复制代码
    SELECT MIN(column_name) FROM table_name;
  • MAX(): 返回某列的最大值。

    sql 复制代码
    SELECT MAX(column_name) FROM table_name;

2. 字符串函数

  • LENGTH(): 返回字符串的长度。

    sql 复制代码
    SELECT LENGTH('Hello World');
  • SUBSTRING(): 提取字符串的子串。

    sql 复制代码
    SELECT SUBSTRING('Hello World' FROM 1 FOR 5);
  • CONCAT(): 连接两个或多个字符串。

    sql 复制代码
    SELECT CONCAT('Hello', ' ', 'World');
  • UPPER(): 将字符串转换为大写。

    sql 复制代码
    SELECT UPPER('hello');
  • LOWER(): 将字符串转换为小写。

    sql 复制代码
    SELECT LOWER('HELLO');

3. 数学函数

  • ABS(): 返回绝对值。

    sql 复制代码
    SELECT ABS(-10);
  • ROUND(): 四舍五入到指定的小数位数。

    sql 复制代码
    SELECT ROUND(123.4567, 2);
  • CEIL(): 返回大于或等于指定数的最小整数。

    sql 复制代码
    SELECT CEIL(123.456);
  • FLOOR(): 返回小于或等于指定数的最大整数。

    sql 复制代码
    SELECT FLOOR(123.456);
  • RANDOM(): 返回一个随机数。

    sql 复制代码
    SELECT RANDOM();

4. 日期和时间函数

  • NOW(): 返回当前日期和时间。

    sql 复制代码
    SELECT NOW();
  • CURRENT_DATE: 返回当前日期。

    sql 复制代码
    SELECT CURRENT_DATE;
  • CURRENT_TIME: 返回当前时间。

    sql 复制代码
    SELECT CURRENT_TIME;
  • AGE(): 计算两个日期之间的间隔。

    sql 复制代码
    SELECT AGE('2023-01-01', '2022-01-01');
  • EXTRACT(): 从日期或时间中提取部分(如年、月、日等)。

    sql 复制代码
    SELECT EXTRACT(YEAR FROM NOW());

5. 条件函数

  • COALESCE(): 返回参数列表中的第一个非空值。

    sql 复制代码
    SELECT COALESCE(NULL, 'default');
  • NULLIF(): 如果两个参数相等,则返回 NULL,否则返回第一个参数。

    sql 复制代码
    SELECT NULLIF(1, 1);
  • GREATEST(): 返回参数列表中的最大值。

    sql 复制代码
    SELECT GREATEST(1, 2, 3);
  • LEAST(): 返回参数列表中的最小值。

    sql 复制代码
    SELECT LEAST(1, 2, 3);

6. 类型转换函数

  • CAST(): 将一种数据类型转换为另一种。

    sql 复制代码
    SELECT CAST('123' AS INTEGER);
  • TO_CHAR(): 将日期/时间或数字转换为字符串。

    sql 复制代码
    SELECT TO_CHAR(NOW(), 'YYYY-MM-DD');
  • TO_DATE(): 将字符串转换为日期。

    sql 复制代码
    SELECT TO_DATE('2023-01-01', 'YYYY-MM-DD');

7. 数组函数

  • ARRAY_LENGTH(): 返回数组的长度。

    sql 复制代码
    SELECT ARRAY_LENGTH(ARRAY[1, 2, 3], 1);
  • ARRAY_AGG(): 将多行数据聚合为一个数组。

    sql 复制代码
    SELECT ARRAY_AGG(column_name) FROM table_name;

8. 窗口函数

  • ROW_NUMBER(): 为结果集中的每一行分配一个唯一的行号。

    sql 复制代码
    SELECT ROW_NUMBER() OVER (ORDER BY column_name) FROM table_name;
  • RANK(): 为结果集中的每一行分配一个排名,相同的值会有相同的排名。

    sql 复制代码
    SELECT RANK() OVER (ORDER BY column_name) FROM table_name;
  • DENSE_RANK() : 类似于 RANK(),但排名不会跳过重复的值。

    sql 复制代码
    SELECT DENSE_RANK() OVER (ORDER BY column_name) FROM table_name;

这些函数只是 PostgreSQL 提供的众多内置函数中的一部分。根据具体需求,你可以查阅 PostgreSQL 官方文档以获取更详细的函数列表和使用说明。

相关推荐
GJCTYU1 小时前
spring中@Transactional注解和事务的实战理解附代码
数据库·spring boot·后端·spring·oracle·mybatis
MicroTech20251 小时前
微算法科技(NASDAQ: MLGO)探索Grover量子搜索算法,利用量子叠加和干涉原理,实现在无序数据库中快速定位目标信息的效果。
数据库·科技·算法
Code季风1 小时前
SQL关键字快速入门:CASE 实现条件逻辑
javascript·数据库·sql
weixin_478689761 小时前
操作系统【2】【内存管理】【虚拟内存】【参考小林code】
数据库·nosql
九皇叔叔2 小时前
【7】PostgreSQL 事务
数据库·postgresql
kk在加油2 小时前
Mysql锁机制与优化实践以及MVCC底层原理剖析
数据库·sql·mysql
Kookoos2 小时前
ABP VNext + Cosmos DB Change Feed:搭建实时数据变更流服务
数据库·分布式·后端·abp vnext·azure cosmos
hello 早上好3 小时前
MsSql 其他(2)
数据库·mysql
高压锅_12203 小时前
SQLAlchemy数据库连接密码特殊字符处理完全指南
数据库·mysql·django·sqlalchemy
Hello.Reader8 小时前
Redis 延迟监控深度指南
数据库·redis·缓存