查询 WHERE IN 子句不起作用

Query WHERE IN clause not working

在 SQL 查询中,我们使用 WHERE IN 子句来过滤数据。当我在 WHERE IN 子句中传递 35000 个字段时,ExecuteNonQuery 抛出

Object reference not set to an instance exception

我在 ExecuteNonQuery 执行的地方使用了 try catch,但是异常没有被当前方法捕获,它在父方法中被捕获(点击按钮)

如果我将计数从 35000 减少到 25000,SQL 查询就可以正常工作。请帮忙。

SELECT * FROM COUNTRY WHERE CountryID in ('1','2',......'35000')

我也尝试在 SQL 中使用 Temp Table,发生了同样的错误。

IF OBJECT_ID('tempdb..#temp)IS NOT NULL DROP #TEMP 
CREATE TABLE #TEMP
( CountryID int NULL)
INSERT INTO #TEMP VALUES ('1')
.
.
.
INSERT INTO #TEMP VALUES('10')

SELECT * FROM COUNTRY WHERE CountryID IN(SELECT CountryID from #temp)

对象空引用错误不是问题,我如何克服 sql 查询中的 Where In 子句问题。避免 sql 查询中的 Where in 子句的可能解决方案是什么。

请帮忙。谢谢。

为什么不直接使用 between?

SELECT * FROM COUNTRY WHERE CountryID between 1 and 10

改为使用 join,这应该可行

SELECT * FROM COUNTRY c INNER JOIN #temp t on c.CountryId=t.CountryId