SQL Alt Sorguları

Önemli : Bu makale makine çevisidir. Bkz. yasal uyarı. Bu makalenin İngilizce sürümüne buradan ulaşabilirsiniz.

Alt sorgu, SELECT, SELECT...INTO, INSERT...INTO, DELETE veya UPDATE deyimine ya da başka bir alt sorguya eklenmiş bir SELECT deyimidir.

Sözdizimi

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

karşılaştırma [ANY | ALL | SOME] (sqldeyimi)

ifade [NOT] IN (sqldeyimi)

[NOT] EXISTS (sqldeyimi)

Bir alt sorgunun bölümleri şunlardır:

Bölüm

Açıklama

karşılaştırma

ifade alt sorgunun sonuçları ile karşılaştıran bir ifade ve bir karşılaştırma işlecidir.

ifade

Alt sorgu sonuç kümesinde aranan ifadedir.

sqldeyimi

Diğer SELECT deyimleriyle aynı biçimde olan ve aynı kuralları paylaşan bir SELECT deyimidir. Ayraç içine alınmalıdır.


Açıklamalar

SELECT deyiminin alan listesinde veya WHERE ile HAVING yan tümcelerinde ifade yerine alt sorgu kullanabilirsiniz. Alt sorguda, WHERE veya HAVING yan tümcesi ifadelerinde değerlendirmek üzere bir veya daha fazla değer kümesini sağlamak için SELECT deyimi kullanılır.

Eşanlamlı olan ANY veya SOME doğrulamalarını, yapılan karşılaştırma sonucunda alt sorgu kayıtlarından herhangi biriyle eşleşen ana sorgu kayıtlarını almak için kullanın. Aşağıdaki örnek, birim fiyatı, %25 veya daha fazla indirimle satılmış herhangi bir ürünün birim fiyatından yüksek olan tüm ürünleri verir:

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

ALL doğrulamasını, yapılan karşılaştırma sonucunda alt sorgu kayıtlarının tümüyle eşleşen ana sorgu kayıtlarını almak için kullanın. Önceki örnekte ANY yerine ALL yazarsanız, sorgu sonucunda birim fiyatı, %25 veya daha fazla indirimle satılmış tüm ürünlerin birim fiyatından yüksek olan ürünler listelenir. Bu doğrulama daha kısıtlayıcıdır.

IN doğrulamasını, alt sorgudaki bazı kayıtların değerine eşit olan ana sorgu kayıtlarını almak için kullanın. Aşağıdaki örnek, indirim oranı %25 veya daha fazla olan tüm ürünleri verir:

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

NOT IN doğrulamasını ise, alt sorgudaki kayıtların değerine eşit olmayan ana sorgu kayıtlarını almak için kullanın.

Doğru/yanlış karşılaştırmalarında alt sorgunun herhangi bir kayıt döndürüp döndürmediğini saptamak için EXISTS doğrulamasını (yerine göre NOT özel amaçlı sözcüğüyle birlikte) kullanın.

Ayrıca, alt sorgunun dışındaki bir FROM yan tümcesinde listelenen tablolara başvurmak için, alt sorguda tablo diğer adlarını da kullanabilirsiniz. Aşağıdaki örnek, maaşları, aynı iş unvanına sahip tüm çalışanların maaş ortalamasına eşit veya daha yüksek olan çalışanların adlarını verir. Çalışanlar tablosuna "T1" diğer adı verilmiştir:

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

Önceki ö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ÇİM listesi) çıktı olarak çapraz sorgularda izin verilmez.



Not : Makine Çevirisi Yasal Uyarısı: Bu makale, insan müdahalesi olmadan bir bilgisayar sistemi tarafından çevrilmiştir. Microsoft bu makine çevirilerini İngilizce bilmeyen kullanıcıların Microsoft ürünleri, hizmetleri ve teknolojileriyle ilgili içeriklerden yararlanmasına yardımcı olmak için sunar. Bu makale makine çevirisi olduğundan sözcük, cümle dizilimi ve gramer hataları içerebilir.

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.

×