📚 目录
🛠️ 概述
PostgreSQL 提供了丰富的内置函数,允许用户对数据进行各种操作。这些函数涵盖了从字符串、日期、数学到聚合等各个方面。掌握这些函数可以大大提高数据处理和分析的效率。
下面介绍一些 PostgreSQL 中常用的函数,帮助用户更好地进行日常操作。
📝 字符串函数
CONCAT()
CONCAT()
函数用于将多个字符串连接成一个字符串。
SELECT CONCAT('Hello', ' ', 'World'); -- 返回 'Hello World'
LENGTH()
LENGTH()
函数返回字符串的长度(字符数)。
SELECT LENGTH('Hello World'); -- 返回 11
UPPER() 和 LOWER()
UPPER()
和 LOWER()
函数分别用于将字符串转换为大写和小写。
SELECT UPPER('hello'); -- 返回 'HELLO'
SELECT LOWER('WORLD'); -- 返回 'world'
TRIM()
TRIM()
函数用于去掉字符串两端的空格或指定字符。
SELECT TRIM(' ' FROM ' Hello World '); -- 返回 'Hello World'
📝 数学函数
ROUND()
ROUND()
函数用于将数字四舍五入到指定的小数位数。
SELECT ROUND(123.4567, 2); -- 返回 123.46
CEIL() 和 FLOOR()
CEIL()
函数用于返回大于或等于给定数字的最小整数。FLOOR()
函数用于返回小于或等于给定数字的最大整数。
SELECT CEIL(123.45); -- 返回 124
SELECT FLOOR(123.45); -- 返回 123
RANDOM()
RANDOM()
函数返回一个 0 到 1 之间的随机浮动值。
SELECT RANDOM(); -- 返回一个随机数,如 0.123456789
📝 日期/时间函数
NOW() 和 CURRENT_TIMESTAMP
NOW()
和 CURRENT_TIMESTAMP
函数返回当前的日期和时间。
SELECT NOW(); -- 返回当前时间,如 '2025-04-08 12:30:00'
SELECT CURRENT_TIMESTAMP; -- 返回当前时间,与 NOW() 相同
AGE()
AGE()
函数用于计算两个时间戳之间的差值。
SELECT AGE(TIMESTAMP '2025-04-08', TIMESTAMP '2020-04-08'); -- 返回 '5 years 0 mons'
EXTRACT()
EXTRACT()
函数用于从日期或时间中提取指定部分,如年、月、日等。
SELECT EXTRACT(YEAR FROM NOW()); -- 返回当前年份
SELECT EXTRACT(MONTH FROM NOW()); -- 返回当前月份
📝 聚合函数
COUNT()
COUNT()
函数用于返回某列的行数或某个条件下的行数。
SELECT COUNT(*) FROM employees; -- 返回表中所有行的数量
SELECT COUNT(employee_id) FROM employees WHERE salary > 50000; -- 返回薪水大于 50000 的员工数量
SUM()
SUM()
函数用于计算某一列所有值的总和。
SELECT SUM(salary) FROM employees; -- 返回所有员工薪水的总和
AVG()
AVG()
函数用于计算某一列所有值的平均值。
SELECT AVG(salary) FROM employees; -- 返回所有员工薪水的平均值
📝 转换函数
CAST()
CAST()
函数用于将一个数据类型转换为另一个数据类型。
SELECT CAST('2025-04-08' AS DATE); -- 将字符串转换为日期类型
SELECT CAST(123.45 AS INT); -- 将浮动数字转换为整数
TO_CHAR()
TO_CHAR()
函数用于将日期或数字转换为指定格式的字符串。
SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS'); -- 将当前时间格式化为字符串
📝 其他常用函数
COALESCE()
COALESCE()
函数返回列表中第一个非 NULL 的值。
SELECT COALESCE(NULL, NULL, 'Hello', 'World'); -- 返回 'Hello'
NULLIF()
NULLIF()
函数比较两个值,如果它们相等,则返回 NULL,否则返回第一个值。
SELECT NULLIF(5, 5); -- 返回 NULL
SELECT NULLIF(5, 6); -- 返回 5
📘 参考资料
- PostgreSQL 官方文档:Functions and Operators
- 更多 PostgreSQL 技巧整理自:www.52kanjuqing.com
发表回复