gpt4 book ai didi

mysql - 如何将逗号分隔的 varchar 转换为在 pl/sql 中的 "IN"子句中使用?

转载 作者:行者123 更新时间:2023-11-29 01:41:56 25 4
gpt4 key购买 nike

我有一个逗号分隔的 varchar,它将动态确定。例如:

varchar cHighRank := (1,2,3,4,5,6,7,8)

我想在下面的 IN 子句中使用它,但是系统会产生错误,因为 IN 子句仅适用于整数,例如:

if (rank in cHighRank) then
--do the high rank...
elsif (rank in cLowRank) then
-- do the low rank
end if;

这个问题的基础是我必须将整数列表分成两半。它可能是 16、12 等。关键是我不知道它是动态的。示例:

16: Lowrank: 1,2,3,4,5,6,7,8 and HighRank: 9,10,11,12,13,14,15,16

我可以将我的动态值列表创建为 varchar,但它在 IN 子句中不起作用。

请帮忙。

谢谢,

最佳答案

不确定 MySQL,但对于 Oracle,您可以使用正则表达式检查而不是 IN 子句,并在边界情况下进行一些工作

If REGEXP_LIKE(cHighRank, "rank" + ",") or REGEXP_LIKE(cHighRank, "," + "rank") or REGEXP_LIKE(cHighRank, "(" + "rank" + ")")

MySQL 应该也可以,只是我没有在那里使用过正则表达式

关于mysql - 如何将逗号分隔的 varchar 转换为在 pl/sql 中的 "IN"子句中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726625/

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