AVG() etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
AVG() etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

29 Aralık 2012 Cumartesi

SQL Server'da Fonksiyon Oluşturma ve Kullanma

  • Fonksiyonlar istenilen veri tiplerini alıp istenilen veri tiplerini veya bir tablo bile geri döndürebilir.
  • Birden çok parametre vereceğimiz zaman bunları virgül ile ayırmamız gerekmektedir. 
Function Create(Fonksiyon  Oluşturma) 
  • Örneğimizde Animals tablomuzdaki Kusların ortalama ağırlıklarını döndüren bir fonksiyon yazalım.

ÖRNEK:

CREATE FUNCTION fnc_OrtalamaAgirlik
(
@KusNo int
)
RETURNS int
AS
BEGIN
  DECLARE @Result int
  SET @Result = (SELECT AVG(Weight) FROM Animals.dbo.Kuslar WHERE KusNo <=@KusNo)
RETURN(@Result)
END


Function Kullanma(Fonksiyon  Kullanma)  
  • İstediğimiz lokasyondan doğru path i vererek fonksiyonumuzu çağırabiliriz.
 ÖRNEK:

DECLARE @KusNo int
SET @KusNo = 5
SELECT dbo.fnc_OrtalamaAgirlik(@KusNo) AS Ortalama



29 Ekim 2012 Pazartesi

53. IF..ELSE Yapısının Kullanılması

  • Diğer programlama dillerinde olduğu gibi SQLde de bloklar kullanılır.
  • Eğer işlenecek komut satırları birden fazla ise mutlaka BEGIN..END yapısı kullanılmalıdır.
  • IF..ELSE blokları komutların belirli bir koşula bağlı olarak çalışmasını sağlar.
SÖZ DİZİMİ:
IF Koşul
{
   Deyim
}
ELSE
{
   Deyim
}
ÖRNEK:
//ortalama fiyatın düşük veya yüksek olup olmadığını buluyoruz.

DECLARE @ortalamafiyat DECIMAL(10,2)
SELECT @ortalamafiyat=AVG(UnitPrice) FROM Products
PRINT 'Ortalama Birim Fiyatı='+CAST(@ortalamafiyat AS VARCHAR(5))
IF(@ortalamafiyat<30)
BEGIN
    PRINT 'Düşük Fiyat'
END
ELSE
BEGIN
    PRINT 'Yüksek Fiyat'
END


Ders 54'e geçebilirsiniz.

17 Haziran 2012 Pazar

39. SUBQUERIES-HAVING Dönüşümü

  • İlişkili alt sorgularla elde ettiğimiz sonuçları aynı zamanda HAVING işlemi ile de elde edebiliriz. Bu bize kullanım çeşitliliği sağlar.
Örnek: İnceleyeceğimiz iki örnekte aynı kategorideki ürünlerden birim fiyatı ortalama birim fiyatından yüksek olan ürünleri kategoriye göre listelenmesini istiyoruz. İlk örneğimizde herhangi bir dönüşüm yapmadan gerekli koşullarımızı sağlıyoruz.

Sorgu:
SELECT ProductName,CategoryID,UnitPrice FROM Products AS p1
    WHERE p1.UnitPrice>(SELECT AVG(UnitPrice) FROM Products AS p2 WHERE p1.CategoryId=p2.CAtegoryId)
    ORDER BY CategoryId




Örnek: Bu örneğimizde INNER JOIN ve HAVING kullanarak aynı sonucu listeliyoruz.

Sorgu:
SELECT p1.ProductName,p1.CategoryID,p1.UnitPrice FROM Products AS p1
    INNER JOIN Products AS p2 WITH (NOLOCK) ON p1.CategoryID=p2.CategoryID
    GROUP BY p1.ProductName,p1.CategoryID,p1.UnitPrice
    HAVING p1.UnitPrice>AVG(p2.UnitPrice)
    ORDER BY p1.CategoryId


Ders 40 'a geçebilirsiniz.