SQL WITH KULLANIMI (WITH USAGE IN SQL)

WITH kullanımının mantığı; iç içe sorgularda, aynı sorgunun tekrar tekrar yazılmasını ortadan kaldırmaktır.  WITH ile oluşturduğumuz tablo, localde tutulmaktadır, data dictionary’de tutulmamaktadır (procedure,function data dictionary’de tutulur.) Basti bir örnekle açıklamak gerekirse.
NOT: Örneği HR şeması üzerinden gösteriyor olacağım. HR schemasını(şemasını) nasıl kurarım, buraya tıklayınız.

SELECT deptno, bdate,job FROM employees

sorgusunun sonucu:

SELECT deptno, bdate,job FROM employees
SELECT deptno, bdate,job FROM employees
WITH my_employee AS (SELECT deptno, bdate,job FROM employees)
  SELECT *
  FROM my_employee
  WHERE deptno='20'
UNION ALL
  SELECT *
  FROM my_employee
WHERE job like 'AD%';

sorgusunun sonucu:

WITH Kullanımı
WITH Kullanımı

Yukarıdaki sorguda: my_employee isimli obje tanımlıyorum, bu obje benim daha sonra alt sorgularda kullanacağım, sorguyu içeriyor.
Benzer mantıkta fonksiyonu da, WITH ile çağırabiliriz. Yani data dictionary’ye kaydetmeden. WITH FUNCTION kullanıldığı zaman, hemen arkasından ilgili select çalıştırılmalı.

Leave a Reply

Your email address will not be published. Required fields are marked *