IN (Transact-SQL)
Belirtilen değer, herhangi bir alt sorgu veya bir liste değeri eşleşip eşleşmediğini belirler.
test_expression [ NOT ] IN
( subquery | expression [ ,...n ]
)
Bağımsız değişkenler
test_expression
Herhangi bir geçerli mi ifade.subquery
Alt sorgu sonucu olan iş küme bir sütun.Bu sütun, aynı veri olarak türü olmalıdır test_expression.expression[ ,... n ]
Bir eşleşme sınamak için bir ifadeler listesinde belirtilir.Tüm ifadelerin aynı türde olması gerekir test_expression.
Sonuç türleri
Boolean
Sonuç değeri
Değeri test_expression döndürülen herhangi bir değere eşittir subquery veya herhangi bir eşittir expression virgülle ayrılmış) listesinde, sonuç değeri DOğRU ise; aksi halde, sonuç değeri YANLıŞ.
NOT IN kullanarak olumsuzlar subquery değer veya expression.
Uyarı
Döndürülen null değerleri subquery veya expression için karşılaştırma test_expression IN kullanarak veya NOT IN BILINMIYOR. Null'nı kullanarak, birlikte IN ile değerleri veya NOT IN beklenmeyen sonuçlar verebilir.
Remarks
Bir çok sayıda değerler (çok sayıda binler basamağı) bir IN yan tümce içeren kaynaklarını tüketen ve hata 8623 oluşuyor veya 8632 dönün.Bu soruna geçici bir çözüm bulmak için , tablo IN listesindeki öğeleri depolar.
Hata 8623 oluşuyor:
Query processor iç kaynakları yetersiz çalıştırdığınızda ve bir sorgu planı oluşturmak.Ender olayıdır ve yalnızca, son derece karmaşık bir sorgu veya çok sayıda tablo veya bölüm başvuran sorgular için bekleniyor.Lütfen sorguyu basitleştirin.Size bu iletiyi yanlışlıkla aldığınıza inanıyorsanız, daha fazla bilgi için Müşteri Destek Hizmetleri'ne başvurun.
Hata 8632 oluşuyor:
Iç hata: Bir ifade Hizmetleri sınıra ulaşıldı. Sorgunuzdaki olabilecek karmaşık ifadeler için görünür ve bunları basitleştirmek deneyin.
Örnekler
C.Karşılaştırma VEYA ve IN
Aşağıdaki örnek, tasarım mühendislerinin, araç tasarımcıları veya pazarlama Yardımcılar çalışanları adlarının bir listesini seçer.
Ancak, ın'dir kullanarak aynı sonuçlar almak
Sonuç ya da sorgudan kümesini olur.
FirstName LastName Title
--------- --------- ---------------------
Sharon Salavaria Design Engineer
Gail Erickson Design Engineer
Jossef Goldberg Design Engineer
Janice Galvin Tool Designer
Thierry D'Hers Tool Designer
Wanida Benshoof Marketing Assistant
Kevin Brown Marketing Assistant
Mary Dempsey Marketing Assistant
(8 row(s) affected)
b.Alt sorgu ile kullanarak IN
Aşağıdaki örnek satıcıların tüm kimlikler bulur SalesPerson Tablo $ 250,000 büyük satış kotası yılı varsa ve daha sonra seçer çalışanları için Employee Tüm çalışanların adlarını tablo yeri EmployeeID sonuçlar uyan SELECT alt sorgu.
Here is the result set.
FirstName LastName
--------- --------
Tsvi Reiter
Michael Blythe
Tete Mensa-Annan
(3 row(s) affected)
c.NOT IN ile bir alt sorgu kullanma
The following example finds the salespersons who do not have a quota greater than $250,000.NOT IN finds the salespersons who do not match the items in the values list.
See Also