Netezza 中可以传递 IN 子句的最大参数

Posted

技术标签:

【中文标题】Netezza 中可以传递 IN 子句的最大参数【英文标题】:Max parameter that can pass IN clause in Netezza 【发布时间】:2019-07-03 13:14:46 【问题描述】:

在 Netezza 中,可以指定一个 IN 子句,如下所示:(就像 sql)

 SELECT * FROM user WHERE id IN (1000, 1001, 1002)

有谁知道您可以传递给 IN 的最大参数数是多少?

我知道 Oracle 允许在 SQL 语句中最多包含 1,000 个 IN 列表值。

【问题讨论】:

【参考方案1】:

限制是 Netezza 允许的 SQL 语句的最大物理长度。

如果 IN 成员的数量超过 INLIST_THRESHOLD 设置指定的阈值,系统会将列表写入磁盘以供查询使用。如果成员数量等于或低于阈值,则列表中的值将被编译到查询中并推送到 FGA 进行磁盘级过滤(更快)。您可以控制阈值设置 forum discussion

【讨论】:

以上是关于Netezza 中可以传递 IN 子句的最大参数的主要内容,如果未能解决你的问题,请参考以下文章

如何将 select 语句的 IN 子句中的参数作为具有多个值的参数传递?

如何为“IN 子句”传递可变参数

MongoDB 的 $in 子句是不是有参数数量的最大限制

MongoDB 的 $in 子句是不是有参数数量的最大限制

在 Sql Server 中将集合作为参数传递时使用 IN 子句

SQL IN 逗号分隔参数与内部查询