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