簡體   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