跳到主要内容

SQL 变量

SQL 变量允许你在会话中存储和管理临时数据。

变量 DDL 命令

Databend 提供了以下 DDL 命令用于使用 SQL 变量:

SHOW VARIABLES 命令有一个对应的表函数,SHOW_VARIABLES,它以表格格式提供相同的信息,允许在 SQL 语句中进行更复杂的过滤和查询。

使用变量进行查询

本节解释了如何在查询中有效使用变量,利用 $ 进行值替换和 IDENTIFIER 访问数据库对象(如表)。

使用 $getvariable() 访问变量

你可以在 SQL 语句中使用 $ 符号或 getvariable() 函数引用变量的值。这两种方法都允许动态替换,变量的值在运行时直接嵌入到查询中。

示例:
-- 设置一个变量作为过滤值
SET VARIABLE threshold = 100;

-- 在查询中使用 $ 变量
SELECT * FROM sales WHERE amount > $threshold;

-- 或者使用 getvariable() 函数
SELECT * FROM sales WHERE amount > getvariable('threshold');

使用 IDENTIFIER 访问对象

IDENTIFIER 关键字允许你动态引用存储在变量中的数据库对象名称。请注意,BendSQL 尚不支持使用 IDENTIFIER 访问对象。

示例:
-- 创建一个包含销售数据的表
CREATE TABLE sales_data (region TEXT, sales_amount INT, month TEXT) AS
SELECT 'North', 5000, 'January' UNION ALL
SELECT 'South', 3000, 'January';

select * from sales_data;

-- 设置表名和列名的变量
SET VARIABLE table_name = 'sales_data';
SET VARIABLE column_name = 'sales_amount';

-- 使用 IDENTIFIER 动态引用查询中的表和列
SELECT region, IDENTIFIER($column_name)
FROM IDENTIFIER($table_name)
WHERE IDENTIFIER($column_name) > 4000;
开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册