Fonksiyonlarda Değişken Kullanımı

Veri tabanında sorgulamalar yaparken fonksiyonlara, fonksiyonlar yazabilmek için ise içerilerine değer aktarabileceğimiz değişkenlere ihtiyaç duyabiliriz. Bu nedenle bu bölümde fonksiyon yazarken değişken tanımlama ve kullanmayı işleyeceğiz.

Örnek üzerinde çalışmaya başlamadan önce değişkenin;

— @değişkenismi şeklinde kullanıldığını, 

–fonksiyon başında tanımlarken @değişkenismi özelliği(int,nvarchar(10)) yazmamızın yeterli olacağını,

— fonksiyon içinde tanımladığımızda ise başına Declare komutunun yazılması gerektiğini bilmemiz iyi olacaktır.

Örnek: Aşağıdaki örnekte;

1-HR tablosuna fnGetInformation adında bir fonksiyon yaratıldı.

2-@BirthDate datetime satırı ile tarih türünde bir değişken tanımladık.

3- Returns varchar(20) satırı ile sonuçta dönecek bilginin türünü belirledik.

4- Begin End arasında kalan kısım da fonksiyonun işlem kısmı yazılıyor.(örnekteki işlem doğum tarihinden yaşını hesaplayıp 50 yaşından büyükse yaşlı, küçükse genç sonucunu döndürecek işlemleri yapıyor.)

5- İşlem kısmında değişken tanımlamak için Declare komutundan faydalandığımızı belirtmiştik.

 

CREATE FUNCTION [HR].[fnGetAgeInformation]
(
   @BirthDate datetime
)
RETURNS varchar(20)
AS
BEGIN
  
    Declare @result varchar(20);
    declare @age int;
  
    SET @age = DATEDIFF(year,@BirthDate,Getdate());
  
    if @age>50
    begin
     SET @result = 'Old';
    end
    else
    begin
     SET @result = 'Young';
    end;
  
    return @result;
  
END
 
Not: Aşağıdaki kod satırıyla ise yarattığımız fonksiyonu kullanabiliriz.
 
Select HR.fnGetAgeInformation(birthdate) as A,* from hr.Employees
where HR.fnGetAgeInformation(birthdate) = 'Young';

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s