SQL Alt Sorguları

Not: En güncel yardım içeriklerini, mümkün olduğunca hızlı biçimde kendi dilinizde size sunmak için çalışıyoruz. Bu sayfanın çevirisi otomasyon aracılığıyla yapılmıştır ve bu nedenle hatalı veya yanlış dil bilgisi kullanımları içerebilir. Amacımız, bu içeriğin sizin için faydalı olabilmesini sağlamaktır. Buradaki bilgilerin faydalı olup olmadığını bu sayfanın sonunda bize bildirebilir misiniz? Kolayca başvurabilmek için İngilizce makaleye buradan ulaşabilirsiniz.

Alt sorgu bir SELECT, SELECT iç içe bir SELECT deyimi olur... EKLEMELERİNE... INTO, DELETE veya UPDATE deyimi veya başka bir alt sorgu içinde.

Söz Dizimi

Alt sorgu oluşturmak için üç tür sözdizimi kullanabilirsiniz:

karşılaştırma [HERHANGİ BİR | TÜM | Bazı] (sqldeyimi)

ifade [NOT] İÇİNDE (sqldeyimi)

[NOT] EXISTS (sqldeyimi)

Alt sorgu bölümleri şunlardır:

Bölüm

Açıklama

Karşılaştırma

Bir ifade ve alt sorgu sonuçlarını ifadenin karşılaştıran karşılaştırma işleci.

ifade

Kendisi için alt sorgu sonuç kümesini aranması için kullanılan bir ifade.

sqldeyimi

Diğer SELECT deyimi aynı biçimini ve kuralları takip bir SELECT deyimi. Parantez içine alınmalıdır.


Notlar

Bir ifadede SELECT deyiminin alan listesinde veya WHERE veya HAVING yan tümcesi yerine bir alt sorgu kullanabilirsiniz. Alt sorguda, WHERE veya HAVING yan tümcesi değerlendirmek için bir veya daha fazla değer kümesi sağlamak için bir SELECT deyimi kullanın.

Hangi karşılaştırma alt sorgu kayıtlarından herhangi biriyle karşılayan ana sorgu kayıtlarını almak için eşanlamlı olan tüm veya bazı karşılaştırma kullanın. Aşağıdaki örnek, birim fiyatı, % 25 veya daha fazla indirimle satılan herhangi bir ürün büyüktür tüm ürünleri verir:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

ALL doğrulamasını yalnızca sorguda kayıtlarının ile karşılaştırma karşılayan kayıtları ana sorgu almak için kullanın. Önceki örnekte tüm değiştiyse, sorguyu birim fiyatı büyüktür tüm ürünlerin yüzde 25 veya daha fazla indirimle satılan ürünlerin döndürür. Çok daha kısıtlayıcı budur.

Yalnızca bazı alt sorgu kaydında değerine eşit içeren ana sorgu kayıtlarını almak için İNÇ koşulunu kullanın. Aşağıdaki örnekte bir indirim % 25 veya daha fazla olan tüm ürünleri verir:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

Tersi durumda, yalnızca sorgudaki hiç kayıt değerine eşit içeren ana sorgu kayıtlarını almak için NOT ın kullanabilirsiniz.

EXISTS kullanma (isteğe bağlı olmayan ile özel amaçlı sözcük) alt sorgu tüm kayıtları döndürür olup olmadığını belirlemek için doğru/yanlış karşılaştırmaları içinde.

Alt sorgu dışındaki bir FROM yan tümcesinde listelenen tablolara başvurmak için alt sorguda tablo diğer adları da kullanabilirsiniz. Aşağıdaki örnek, aynı iş unvanına sahip tüm çalışanların ortalama ücret'dan büyük veya eşit olan maaşlar çalışanlar adlarını döndürür. Çalışanlar tablosu "T1" diğer adı verilir:

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

Yukarıdaki örnekte, AS özel amaçlı sözcük isteğe bağlıdır.

Bazı alt sorguları çapraz sorgularda izin verilen — özellikle olarak doğrulamaları (WHERE yan tümcesinde olanlar). Alt sorguları (özellikle seçim listesi) çıktı olarak çapraz sorgularda izin verilmez.



Office yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Office Insider Programına Katılın

Bu bilgi yararlı oldu mu?

Görüşleriniz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×