MS SQL’de bir değişkene değer atamak için fonksiyonlarıda kullanabiliriz. Örneğin herhangi bir sorgu sonucunda veri olarak dönen satırların kaç adet olduğu bilgisini bir değişkene atma ihtiyacı duyabiliriz. Bu gibi durumlarda fonksiyonlardan yararlanırız. Bir kaç örnekle konuya devam edelim. AdventureWorks2012 veri tabanı üzerinde çalışıyorum. MS SQL Server Management Studio ortamında boş bir Query sayfası açtım.
Örneğin iki değişken oluşturalım daha sonra bu iki değişken üzerinde çarpma işlemi yapıp bunun sonucunu da bir üçüncü değişkene aktaralım. Ekrana da sonucu yani 3. değişken değerini yazdıralım.
DECLARE @Sayi1 INT = 3, @Sayi2 INT = 2, @Sayi3 INT; SET @Sayi3 = @Sayi1 * @Sayi2; PRINT 'Sayi3 değeri: ' + CONVERT(VARCHAR,@Sayi3); GO
Şimdi bu sefer de iki tane string ifadeyi toplayalım. Bu sefer tek değişken üzerinden toplama yapalım hem onu da görmüş oluruz. Ayrı ayrı da olur ama Bunları toplayıp, bir üçüncü değişkene atalım. Yazdırma işleminde de 3. değişkenin değerini yazdıralım.
DECLARE @AdSoyad NVARCHAR(20); SET @AdSoyad = 'İsmail '; SET @AdSoyad += 'GÜRSOY'; PRINT 'String veriler toplamı: ' + @AdSoyad; GO
Şimdi de bir tablo sonucunda dönen satır sayısını bir değere atalım ve daha sonra bu değişkenin değerini yazdıralım. Sorgulamak istediğim tablo Sales.Customer tablosu. Önce bir bakalım kaç satır veri var;
SELECT * FROM Sales.Customer;
Görüleceği üzere 19820 satır veri mevcut. Şimdi Count fonksiyonu ile bir sorguda bu verileri sayalım, elde edilen değeri de bir değişken içine atalım. Daha sonra da bu değişken içindeki değeri ekrana yazalım. Bakalım 19820 çıkacak mı?
DECLARE @VeriSatirSayisi INT; SELECT @VeriSatirSayisi = COUNT (*) FROM Sales.Customer; PRINT 'Toplam Satır Sayısı: ' + CAST(@VeriSatirSayisi AS VARCHAR);
Görüleceği üzere aynı sonucu elde ettik.
Birde bir tablodan sadece tek bir satır içindeki verilerin kolonlarını toplayarak listelemeyi görelim. Örneğin; Person.Person tablosunda BusinessEntityID değeri 3 olan verinin FirstName, MiddleName ve LastName kolonlarını tek bir değişken içinde toplayıp, bunu daha sonra ekrana yazdıralım. Öncelikle bir bakalım Person.Person tablosunda BusinessEntityID değeri 3 olan veri hangisi?
SELECT FirstName, MiddleName, LastName FROM Person.Person WHERE BusinessEntityID = 3;
Şimdi bu 3 parça veriyi birleştirerek bir değişkene alalım ve sonra bu değişken içindeki veriyi yazdıralım.
DECLARE @Kisi NVARCHAR(50); SELECT @Kisi = FirstName + ISNULL(' ' + MiddleName, '') + ' ' + LastName FROM Person.Person WHERE BusinessEntityID = 3; PRINT 'Kişi Ad-Soyad: ' + @Kisi;