有人知道在 db2 v11 上的函式 where [...] 中使用引數/變數進行查詢的解決方法嗎?
我試過的:
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 不兼容,第二個不起作用,因為他無法拆分值。
任何想法或例子?
uj5u.com熱心網友回復:
嘗試這個:
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如果您想在運行時提供這樣一個整數串列作為逗號分隔的字串,您可以使用引數標記而不是字串常量作為通常的字串引數。
uj5u.com熱心網友回復:
宣告本地臨時表并在其中插入您的值串列?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/336013.html
