繁体   English   中英

查询WHERE IN子句不起作用

[英]Query WHERE IN clause not working

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

对象引用未设置为实例异常

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

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

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

我也尝试在SQL中使用临时表,发生了相同的错误。

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子句的可能解决方案是什么?

请帮忙。 谢谢。

使用连接代替,这应该工作

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

为什么不之间使用呢?

SELECT * FROM COUNTRY WHERE CountryID between 1 and 10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM