You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DuckDB中声明并使用本地变量?

在DuckDB中声明并使用本地变量的方法

DuckDB没有提供像SQL Server那样的DECLARE本地变量语法,但可以通过以下几种方式实现类似的本地变量使用效果:

1. 使用WITH子句定义临时变量(单脚本内复用)

这种方式适合在单个SQL脚本中定义临时值,后续查询可直接引用:

WITH vars AS (SELECT 7 AS x)
SELECT x * 2 FROM vars;

执行结果:14

2. 使用SET定义会话级变量(当前会话内全局有效)

通过SET语句定义的变量会在当前会话中持续有效,直到会话结束或手动重置:

-- 定义变量
SET x = 7;
-- 引用变量(两种写法都支持)
SELECT $x * 2;
-- 或者直接使用变量名
SELECT x * 2;

执行结果:14
若需清除变量,执行RESET x;即可。

3. 使用PRAGMA定义配置类变量(不推荐用于临时计算)

这种方式更适合配置类场景,需要手动转换数据类型,使用相对繁琐:

PRAGMA set_setting('x', '7');
SELECT CAST(current_setting('x') AS INT) * 2;

执行结果:14

与SQL参数的区别

上述方式都是在SQL脚本内部定义并使用的变量,而SQL参数是从外部(如应用程序、客户端工具)传入的,二者作用范围和使用场景完全不同。

内容的提问来源于stack exchange,提问作者bouvierr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:40:02