SQL函数
时间: 2025-05-01 18:39:45 浏览: 21
### 关于 SQL 函数的使用教程和示例
#### 一、SQL 函数概述
SQL 提供了多种内置函数来简化查询过程并增强其功能。这些函数可以分为以下几类[^2]:
- **聚合函数**: 返回一组值的汇总结果,例如 `SUM()`、`AVG()`、`COUNT()` 等。
- **转型函数**: 将数据从一种类型转换为另一种类型,例如 `CAST()` 和 `CONVERT()`。
- **日期函数**: 处理日期和时间的数据,例如 `GETDATE()`、`DATEDIFF()` 等。
- **数学函数**: 执行数值计算,例如 `ABS()`、`ROUND()`、`SQRT()` 等。
- **字符串函数**: 对字符型数据进行操作,例如 `SUBSTRING()`、`REPLACE()`、`UPPER()` 等。
- **系统函数**: 获取有关数据库的信息或其他元数据,例如 `SUSER_NAME()`、`DB_NAME()` 等。
---
#### 二、常见 SQL 函数及其示例
##### 1. 聚合函数
用于统计分析的一组记录的结果:
```sql
-- 计算表中某一列的总和
SELECT SUM(column_name) AS total_sum FROM table_name;
-- 统计某列的平均值
SELECT AVG(column_name) AS average_value FROM table_name;
```
##### 2. 转型函数
将数据类型从一种形式转换为另一种形式:
```sql
-- 使用 CAST() 进行显式类型转换
SELECT CAST('123' AS INT);
-- 使用 CONVERT() 实现更灵活的转换
SELECT CONVERT(VARCHAR(10), GETDATE(), 101);
```
##### 3. 日期函数
处理日期和时间的操作:
```sql
-- 获取当前日期和时间
SELECT GETDATE();
-- 计算两个日期之间的天数差
SELECT DATEDIFF(day, '2023-01-01', '2023-12-31');
```
##### 4. 数学函数
执行基本或复杂的数学运算:
```sql
-- 取绝对值
SELECT ABS(-10);
-- 四舍五入到指定的小数位数
SELECT ROUND(123.45678, 2);
```
##### 5. 字符串函数
对文本数据进行修改或提取:
```sql
-- 截取子字符串
SELECT SUBSTRING('Hello World', 7, 5); -- 输出 "World"
-- 替换字符串中的部分内容
SELECT REPLACE('Hello World', 'World', 'Universe'); -- 输出 "Hello Universe"
```
##### 6. 系统函数
获取数据库环境的相关信息:
```sql
-- 获取当前用户的登录名
SELECT SUSER_NAME();
-- 查询当前数据库名称
SELECT DB_NAME();
```
---
#### 三、Flink Table API 和 SQL 中的自定义函数
除了标准 SQL 函数外,在大数据场景下(如 Apache Flink),还可以通过扩展机制创建自定义函数。以下是基于 Flink 的简单实现案例[^1]:
假设我们已经编写了一个简单的 Java 自定义标量函数 `MyCustomFunction` 并将其注册到了 Flink SQL Client 中,则可以通过如下方式调用它:
```java
// 注册自定义函数 (Java 示例)
tableEnv.createTemporarySystemFunction(
"my_custom_function",
MyCustomFunction.class
);
```
随后可以在 SQL 查询中像其他内置函数一样使用该函数:
```sql
SELECT my_custom_function(column_name) FROM table_name;
```
---
###
阅读全文
相关推荐











