在 DB2 SQL 中创建和使用变量

Creating and Using Variables in DB2 SQL

提问人:Sherri 提问时间:11/18/2023 最后编辑:Sherri 更新时间:11/18/2023 访问量:32

问:

我正在尝试创建一个变量以在 db2 sql 的 Where 子句中使用。一切都运行没有错误,但我没有返回任何结果。你能看看下面的内容,告诉我我哪里出了问题吗?

--创建我的测试表

创建表 QTEMP。TESTVAR (循环 CHAR(2), BD CHAR(2)); 插入 QTEMP。TESTVAR (周期, BD) 值 (01,01),(02,02),(03,03),(04,04),(05,05),(06,06),(07,07),(08,08),(09,09),(10,10),(11,11),(12,12),(13,13),(14,14),(15,15);

--创建我的变量

DROP 变量 SRCCYC;创建变量 SRCCYC CHAR(10) DEFAULT ' ''13'',''14'',''15'' ';

-- 带有变量的 SQL 不起作用

从 QTEMP 中选择 *。TESTVAR 其中循环 (SRCCYC);

--这就是我希望它带回来的东西

从 QTEMP 中选择 *。TESTVAR 其中循环 ('13','14','15');

SQL 变量 DB2

评论


答:

0赞 Charles 11/18/2023 #1

您没有提到您正在使用的平台和 Db2 版本......

但是,这是一组硬编码的三个字符串值...IN ('13','14','15')

这是一个只有一个字符串值的集合。IN (SRCCYC)

你需要的是这样的:IN (SRCCYC1, SRCCYC2, SRCCYC3)

根据您的平台和版本,您可以使用 或提供/现有/滚动自己的函数将单个字符串拆分为兼容JSON_TABLE()XML_TABLE()SPLIT()IN ()