Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


函数调用表达式

📄字数 1.2K
👁️阅读量 加载中...

概述

函数调用表达式用于调用数据库系统函数或用户自定义函数,返回计算结果。函数调用通常采用以下形式:

function_name(arg1, arg2, ...)

此外,在表达式中还可以嵌套调用多个函数,即使用一个函数的返回值作为另一个函数的参数。函数嵌套有助于实现更复杂的数据转换和处理逻辑。

提示

嵌套层数不宜过深,影响可读性。且某些函数对输入参数类型有严格要求,嵌套时应确保数据类型兼容。

系统函数分类

类型示例函数用途
数学函数ABS(), ROUND(), FLOOR()数值计算与取整
字符串函数LENGTH(), SUBSTR(), CONCAT()字符串处理
日期和时间函数CURRENT_DATE, EXTRACT()获取与格式化时间
聚合函数SUM(), AVG(), COUNT()分组统计计算
.........

详细信息见系统函数

示例

  • 示例1:函数调用表达式及函数嵌套使用
sql
-- 建表
SQL> CREATE TABLE product (
       id INT PRIMARY KEY,
       name VARCHAR(50),
       price DECIMAL(10, 2),
       description TEXT
     );

-- 插入数据
SQL> INSERT INTO product VALUES
     (1, 'Laptop', 7899.99, 'Lightweight and powerful'),
     (2, 'Phone', 4999.00, 'High-resolution camera'),
     (3, 'Tablet', 2599.49, NULL);

-- ROUND函数四舍五入、LENGTH返回字符串长度、COALESCE空值处理函数
SQL> SELECT
       name,
       ROUND(price * 1.1, 2) AS price_with_tax,
       LENGTH(description) AS description_length,
       COALESCE(description, 'No Description') AS safe_description
     FROM product;

+--------+----------------+--------------------+--------------------------+
|  NAME  | PRICE_WITH_TAX | DESCRIPTION_LENGTH |     SAFE_DESCRIPTION     |
+--------+----------------+--------------------+--------------------------+
| Laptop | 8689.99        | 24                 | Lightweight and powerful |
| Phone  | 5498.9         | 22                 | High-resolution camera   |
| Tablet | 2859.44        | <NULL>             | No Description           |
+--------+----------------+--------------------+--------------------------+

-- 函数嵌套使用
SQL> SELECT
            name,
            LENGTH(description) AS len,
            UPPER(SUBSTR(name, 1, 3)) AS name_prefix,
            CASE
              WHEN LENGTH(description) > 20 THEN 'Long'
              ELSE 'Short or NULL'
            END AS description_type
          FROM product;

+--------+--------+-------------+------------------+
|  NAME  |  LEN   | NAME_PREFIX | DESCRIPTION_TYPE |
+--------+--------+-------------+------------------+
| Laptop | 24     | LAP         | Long             |
| Phone  | 22     | PHO         | Long             |
| Tablet | <NULL> | TAB         | Short or NULL    |
+--------+--------+-------------+------------------+

应用场景

  • 场景一:字符串处理函数调用,用于清洗、提取文本内容
  • 场景二:时间/日期函数调用,获取当前时间、时间差、格式化等
  • 场景三:聚合函数调用,用于汇总、统计、分组后分析