gpt4 book ai didi

sql - 带 in 子句的查询中的参数?

转载 作者:行者123 更新时间:2023-12-03 14:39:32 36 4
gpt4 key购买 nike

我想使用参数进行查询,如下所示:

SELECT * FROM MATABLE
WHERE MT_ID IN (368134, 181956)

所以我考虑一下

SELECT * FROM MATABLE
WHERE MT_ID IN (:MYPARAM)

但它不起作用...

有办法做到这一点吗?

我实际上使用 IBX 和 Firebird 2.1

我不知道 IN 子句中有多少个参数。

最佳答案

对谁仍然感兴趣。我在 Firebird 2.5 中使用受这篇文章启发的另一个存储过程来完成此操作。

How to split comma separated string inside stored procedure?

CREATE OR ALTER PROCEDURE SPLIT_STRING (
ainput varchar(8192))
RETURNS (
result varchar(255))
AS
DECLARE variable lastpos integer;
DECLARE variable nextpos integer;
DECLARE variable tempstr varchar(8192);
BEGIN
AINPUT = :AINPUT || ',';
LASTPOS = 1;
NEXTPOS = position(',', :AINPUT, LASTPOS);
WHILE (:NEXTPOS > 1) do
BEGIN
TEMPSTR = substring(:AINPUT from :LASTPOS for :NEXTPOS - :LASTPOS);

RESULT = :TEMPSTR;
LASTPOS = :NEXTPOS + 1;
NEXTPOS = position(',', :AINPUT, LASTPOS);
suspend;
END

END

当您通过 SP 时,会出现以下列表

逗号分隔列表 = 1,2,3,4

并调用

SELECT * FROM SPLIT_STRING(:CommaSeperatedList)

结果将是:

RESULT
1
2
3
4

并且可以按如下方式使用:

SELECT * FROM MyTable where MyKeyField in ( SELECT * FROM SPLIT_STRING(:CommaSeperatedList) )

关于sql - 带 in 子句的查询中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1747452/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com