Junior — Middle
SQL'de Ortak Tablo İfadesi (CTE) içinde özyinelemeli ve özyinelemsiz ifadeler nasıl farklılık gösterir?
sobes.tech yapay zeka
AI'dan gelen yanıt
SQL'de Ortak Tablo İfadesi (CTE), ana sorguda kullanılabilen geçici bir sonuçtur. İki tür CTE vardır: rekürsif ve rekürsif olmayan.
-
Rekürsif olmayan CTE: sadece bir sorgu ile tanımlanan isimlendirilmiş geçici veri kümesidir. Karmaşık sorguları basitleştirmek veya alt sorguları yeniden kullanmak için kullanılabilir.
-
Rekürsif CTE: kendisine referans veren ve örneğin hiyerarşileri veya grafikleri dolaşmak gibi rekürsif işlemler yapmaya izin veren CTE'dir.
Rekürsif olmayan CTE örneği:
WITH RecentOrders AS (
SELECT * FROM Orders WHERE OrderDate > '2024-01-01'
)
SELECT * FROM RecentOrders WHERE CustomerID = 123;
Rekürsif CTE örneği (tüm bağlı çalışanları bulma):
WITH RECURSIVE Subordinates AS (
SELECT EmployeeID, ManagerID, Name FROM Employees WHERE EmployeeID = 1 -- müdür
UNION ALL
SELECT e.EmployeeID, e.ManagerID, e.Name
FROM Employees e
INNER JOIN Subordinates s ON e.ManagerID = s.EmployeeID
)
SELECT * FROM Subordinates;
Bu şekilde, rekürsif CTE'ler zincirler ve hiyerarşiler oluşturabilirken, rekürsif olmayanlar sorgu yapısını basitleştirir.