SQL / DB2 Where中声明的数组



有人知道在[…]中使用参数/变量查询的解决方案吗?在db2 v11的函数?

what I tried:

DECLARE @list varchar(23) = '1,2,3,4'
SELECT ...FROM tbl WHERE col IN (@list)
WITH test(val) AS (VALUES(ARRAY['5','9']))
SELECT ... FROM table, test WHERE col ANY(val)

两个都不工作,第一个不兼容db2,第二个不工作,因为他不能分割值。

有什么想法或例子吗?

试试这个:

SELECT t.*
FROM tbl t
WHERE EXISTS
(
select 1
from xmltable
(
'for $id in tokenize($s, ",") return <i>{string($id)}</i>' 
passing '1,2,3,4' as "s"
columns 
tok int path '.'
) v
where v.tok = t.col
);

如果您想在运行时提供以逗号分隔的整数列表,则可以使用参数标记代替字符串常量1,2,3,4作为常规字符串参数。

声明本地临时表并在其中插入值列表

相关内容

  • 没有找到相关文章

最新更新