CTE'lerle güçlü bir SQL kullanıcısı olun

Anlaşılması ve bakımı zor olan uzun, dolambaçlı SQL sorguları yazmaktan bıktınız mı? Ortak Tablo İfadeleri veya CTE'lerden başkasına bakmayın.

CTE'ler, daha büyük bir SQL sorgusu bağlamında başvurulabilecek geçici sonuç kümelerini tanımlamanın bir yolunu sağlar. Sorgunuzu daha küçük, daha yönetilebilir parçalara bölerek daha okunabilir, yeniden kullanılabilir ve bakımı yapılabilir kodlar oluşturabilirsiniz.

kaynak https://pixabay.com

CTE'ler, tıpkı bir sorgudaki görünüm gibi, bir sorgu ifadesi kapsamında çalışma zamanında başvurulabilen geçici görünümlerdir. CTE'ler basit bir alt sorguya benzer şekilde kullanılabilir ve tam olarak bir alt sorgu gibi derlenebilir; ancak, çalışma zamanında kodun çeşitli bölümlerinde adlandırılırlar ve bunlara başvurulabilir.

Neden CTE'lere ihtiyaç var?

Daha büyük bir sorguda birden çok kez kullanılan bir alt sorgunuz varsa, aynı sorgu içinde birden çok kez başvurulan bir alt sorguyla değiştirilebilir. Kodu daha okunabilir ve hata ayıklamayı kolaylaştırır.

CTE'ler, karmaşık sorgu mantığını belirli dönüşümleri işleyen daha küçük, iyi tanımlanmış bölümlere ayırabilir. Bu, hata ayıklamayı ve dokümantasyonu kolaylaştırır.

Bazı durumlarda, bir CTE kullanmak, bir alt sorgunun yürütülmesi gereken sayısını azaltarak sorgu performansını artırabilir, böylece veriler bellekte tutulduğu ve birkaç kez başvurulabileceği için disk io'yu azaltır.

CTE'leri kullanmaya başlama

Bir sorgu ifadesindeki tek bir CTE'nin sözdizimi aşağıdadır. CTE adı tarafından takip edilen WITH yan tümcesiyle başlar ve ardından isteğe bağlı olarak sütunlara başvurulan sütunlar gelir. Ya tüm sütunları adlandırırsınız ya da hiçbiri belirtilmezse, hiçbir sütun adı belirsiz olmadığı için tüm sütunlar seçilir. Parantez içindeki alt sorgu ile biter.

WITH CTE_NAME (column names) AS (simple subquery)
SELECT ...
FROM CTE_NAME;
-- Calculate age of employees
WITH employee_age (NAME, age)
     AS (SELECT NAME,
                Datediff(year, birthdate, Getdate()) AS Age
         FROM   employee) -- note that no comma separates CTE and query
-- Calculate average age
SELECT Avg(age) AS mean_age
FROM   employee_age

Hikayemiz burada bitmiyor. Diyelim ki ortalama yaştan daha büyük tüm çalışanları iade etmek istiyoruz. Burada, bunu başarmak için birden fazla CTE'yi zincirlememiz gerekiyor. Zincirleme CTE'ler aşağıdaki sözdizimindedir.

WITH CTE_NAME (column names) -- first CTE starts with a WITH clause
AS (simple subquery), -- comma separates successive CTEs

NEXT_CTE (column names) AS (SELECT ...
FROM CTE_NAME)

SELECT ...
FROM NEXT_CTE;

-- Calculate age of employees
WITH EMPLOYEE_AGE (name,age) AS 
  (SELECT name,datediff(year,birthdate,getdate()) as Age
     FROM EMPLOYEE),

-- Calculate average age
AVERAGE_AGE -- column names are optional
AS (SELECT AVG(age) AS mean_age
  FROM EMPLOYEE_AGE)

SELECT * 
FROM  EMPLOYEE_AGE
  WHERE age>=(SELECT mean_age FROM  AVERAGE_AGE)

Okuduğunuz için teşekkürler.

Suggested posts

BARD VS ChatGPT: Analitik problemler üzerinde test etme

Dil modellerinin ve karşılaştırmanın farklılıkları, benzerlikleri ve test edilmesi

BARD VS ChatGPT: Analitik problemler üzerinde test etme

BAĞLANABİLİRİZ :| BAĞLANTI | TWİTTER | ORTA | ALT YÖNTEM | 10 Mayıs'ta, Google'ın ChatGPT'deki en abartılı ve güçlü rakibi BARD, Hindistan'da canlı olarak yayınlandı. Hayranlığım, Bard'ı ChatGPT ile karşılaştırmayı bırakmama izin vermedi ve işte birkaç harika karşılaştırma.

Embr Kontrol Raporu — Nisan

Embr Kontrol Raporu — Nisan

Nisan 2023 boyunca Embr Checkout'un performansına ve büyümesine ışık tuttuğumuz aylık performans raporumuza hoş geldiniz. Bu raporda, haftalık işlem hacmi, eşdeğer USD değeri ve diğer dikkate değer analitikler gibi temel ölçümleri inceleyeceğiz.

Related posts

Gezegeni Nasıl Kurtarır ve Para Kazanırsınız?

Gezegeni Nasıl Kurtarır ve Para Kazanırsınız?

Kaç kez bir plastik şişeyi, cam kavanozu, alüminyum kutuyu veya yeşil enerji paketini iki kere düşünmeden çöpe attınız? Kaç kez geri dönüşüm karşılığında bir şey alabilmeyi diledin? Çoğu insan gibiyseniz, cevap muhtemelen birçok kez. Geri dönüşüm genellikle herhangi bir acil veya somut fayda sağlamayan bir güçlük, angarya veya görev olarak görülür.

SINIRSIZ HAYAT

Büyüdüğünde, dünyanın olduğu gibi olduğunu ve hayatının sadece dünyanın içinde yaşamak olduğunu, hayatını asla riske atmadan, sadece belirlenmiş bir yolu takip et ve sonunda öl ve ölmemeye çalış. duvarlara çok fazla vur. Ama bu çok sınırlı bir hayat.

İşyeri Devrimi: En İyi Uzmanlar Hibrit ve Uzaktan Çalışmayı Tartışıyor

İşyeri Devrimi: En İyi Uzmanlar Hibrit ve Uzaktan Çalışmayı Tartışıyor

Günümüzün hızla gelişen iş ortamında, hibrit ve uzaktan çalışma kavramı benzeri görülmemiş bir ivme kazandı. Şirketler, çalışanlarının değişen ihtiyaç ve beklentilerine uyum sağlamaya devam ederken, çeşitli alanlardan uzmanlar bu dönüştürücü çalışma biçiminin faydalarını, zorluklarını ve geleceğini tartışmak için bir araya geldi.

Yavaş Erozyon: İnsanların Kariyerlerinde Boşa Harcadıkları Yolları Ortaya Çıkarma

Yavaş Erozyon: İnsanların Kariyerlerinde Boşa Harcadıkları Yolları Ortaya Çıkarma

Günümüzün hızlı tempolu ve rekabetçi dünyasında, kişinin kariyeri kişisel gelişim, finansal istikrar ve genel yaşam memnuniyetinde önemli bir rol oynamaktadır. Bununla birlikte, birçok kişi profesyonel yaşamlarında giderek tükenmekte olan amansız bir durgunluk ve tatminsizlik döngüsüne kapılmış durumda.