T-SQL Kullanıcı Tanımlı Fonksiyonlar
T-SQL Kullanıcı Tanımlı Fonksiyonlar Nedir? T-SQL Kullanıcı Tanımlı Fonksiyonlar Nasıl Oluşturulur? T-SQL Kullanıcı Tanımlı Fonksiyonlar Nasıl Kullanılır? Gibi tüm sorularınızın cevabını bu konumuzda bulabilirsiniz.
T-SQL Kullanıcı Tanımlı Fonksiyonlar
Tanımlı fonksiyonlar dışında kullanıcılar da fonksiyon tanımlayabilir.
CREATE FUNCTION Fonksiyon_adi (
@parametre1 tipi
,@parametre2 tipi..
)
RETURNS donendegerin_tipi
AS
BEGIN
--TSQL kodları
RETURN dönecek_deger
END
Örnek: Öğrencilerin aldığı dersleri ve ortalamasını fonksiyon tanımlayarak bulan T-SQL kodunu yazalım.
CREATE FUNCTION FN_Ortalama (
@vize FLOAT
,@final FLOAT
)
RETURNS FLOAT
AS
BEGIN
DECLARE @ort FLOAT
SET @ort = @vize * 0.4 + @final * 0.6
RETURN @ort
END
Sorgu:
SELECT adi, dadi, vize, final, [dbo].[FN_Ortalama](vize, final) AS ortalama FROM OgrenciTanim
INNER JOIN OgrDersleri ON OgrenciTanim.ogrid = OgrDersleri.ogrid
Örnek: Öğrencilerin aldığı dersleri ve ortalamasını, durumunu ve harf notunu ayrı ayrı fonksiyon tanımlayarak öğrenci ders biligilerini listeleyen T-SQL kodunu yazalım.
CREATE FUNCTION [dbo].[FN_Durumu] (@vize FLOAT, @final FLOAT)
RETURNS NVARCHAR(10)
AS
BEGIN
DECLARE @ort FLOAT
DECLARE @durumu NVARCHAR(10)
SET @ort = @vize * 0.4 + @final * 0.6
IF @ort >= 55
SET @durumu = 'Geçti'
ELSE
SET @durumu = 'Kaldı'
RETURN @durumu
END
CREATE FUNCTION FN_HarfNotu (
@vize FLOAT
,@final FLOAT
)
RETURNS NVARCHAR(5)
AS
BEGIN
DECLARE @ort FLOAT
DECLARE @harfNotu NVARCHAR(10)
SET @ort = @vize * 0.4 + @final * 0.6
IF @ort > 0
AND @ort < 40
SET @harfNotu = 'FF'
ELSE IF @ort >= 40
AND @ort < 55
SET @harfNotu = 'DD'
ELSE IF @ort >= 55
AND @ort < 70
SET @harfNotu = 'CC'
ELSE IF @ort >= 70
AND @ort < 85
SET @harfNotu = 'BB'
ELSE IF @ort >= 85
AND @ort < 100
SET @harfNotu = 'AA'
ELSE
SET @harfNotu = ''
RETURN @harfNotu
END
Sorgu:
SELECT adi, dadi, vize, final, [dbo].[FN_Ortalama](vize, final) AS ortalama, [dbo].[FN_durumu](vize, final) AS ortalama, [dbo].[FN_HarfNotu](vize, final) AS harfnotu FROM OgrenciTanim
INNER JOIN OgrDersleri ON OgrenciTanim.ogrid = OgrDersleri.ogrid
Tepkiniz Nedir?