Teradata - Alt Sorgular

Bir alt sorgu, başka bir tablodaki değerleri temel alarak bir tablodaki kayıtları döndürür. Başka bir sorgu içindeki bir SELECT sorgusudur. İlk olarak iç sorgu olarak adlandırılan SELECT sorgusu çalıştırılır ve sonuç dış sorgu tarafından kullanılır. Göze çarpan özelliklerinden bazıları -

  • Bir sorguda birden çok alt sorgu olabilir ve alt sorgular başka bir alt sorgu içerebilir.

  • Alt sorgular, yinelenen kayıtlar döndürmez.

  • Alt sorgu yalnızca bir değer döndürürse, bunu dış sorgu ile kullanmak için = işlecini kullanabilirsiniz. Birden fazla değer döndürürse, IN veya NOT IN kullanabilirsiniz.

Sözdizimi

Alt sorguların genel söz dizimi aşağıdadır.

SELECT col1, col2, col3,… 
FROM  
Outer Table 
WHERE col1 OPERATOR ( Inner SELECT Query);

Misal

Aşağıdaki Maaş tablosunu düşünün.

Çalışan Hayır Brüt Kesinti Net ödeme
101 40.000 4.000 36.000
102 80.000 6.000 74.000
103 90.000 7.000 83.000
104 75.000 5.000 70.000

Aşağıdaki sorgu, en yüksek maaşı alan çalışan numarasını tanımlar. İçteki SELECT, maksimum NetPay değerini döndürmek için toplama işlevini gerçekleştirir ve dış SELECT sorgusu bu değeri çalışan kaydını bu değerle döndürmek için kullanır.

SELECT EmployeeNo, NetPay 
FROM Salary 
WHERE NetPay =  
(SELECT MAX(NetPay)  
FROM Salary);

Bu sorgu yürütüldüğünde aşağıdaki çıktıyı üretir.

*** Query completed. One row found. 2 columns returned. 
*** Total elapsed time was 1 second.  
 EmployeeNo     NetPay 
-----------  ----------- 
    103         83000