查询 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
在 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