Merhabalar, Bugün sql server üzerinde bulunan bazı Hazır fonksiyonlardan bahsedeceğiz.

Örnek database olarak “AdventureWorks” üzerinde çalışacağız. AdventureWorks veritabanını buradan https://koksalaci.com/2019/10/31/sql-server-ornek-veritabanlarini-indirin-ve-yukleyin-2019/

use AdventureWorks2017

select * from Person.Person
-- Person tablosundaki kayıtlardan 2 kolon elde etmek istiyoruz.
-- birinci kolon : BusinessEntityID değerini göstermeli
-- ikinci kolon:  FirstName ve LastName alanlarından oluşan bir karaktersel değeri görüntülemeli

select BusinessEntityID as PersonelNo,  FirstName + ' '+ LastName as [Personel Adı] from Person.Person

-- Kişilerin soyadlarını büyük harfler ile görüntülemek gerekiyor.
select BusinessEntityID , FirstName, Upper(LastName) from Person.Person

-- Upper varsa Lower da vardir. :)
select BusinessEntityID , Lower(FirstName), Upper(LastName) from Person.Person

select * from Person.Person
-- Kisinin adının bas harfi ve soyadinin tamami birlestirilerek tek bir bilgi elde edelim
-- bu bilglerin tamami kucuk harf olarak goruntulenmesini saglayalim
-- ve @sirketAdi.com.tr olarak mail formati olusturalim

select FirstName,LastName,
          Lower(SubString(FirstName,1,1) + LastName) + '@firma.com.tr'
from Person.Person
 

-- bir degerin karakter sayisini elde etmek
select Len(FirstName) from Person.Person

--SubString kullanırken 3 parametre vermemiz gerekir.
--İşlem Yapılacak Kolon Adı , Hangi Karakterden Başlanacağı bilgisi ve Kaç karakter alınacağı bilgisi

select Lower(SubString(FirstName,1,1)) + 
          Upper(SubString(FirstName,2,(Len(FirstName) - 1)))
from Person.Person


-- Convert fonksiyonu iki parametre alarak calisir
-- 1) Hangi tipe donusum yapilacagi bilgisi
-- 2) Hangi degerin donusturulecegi

select Convert(nvarchar(4),ProductID) + ' - ' + Name
from Production.Product order by ProductID

-- Production.Product tablosu
-- UrunID , UrunAdi , Renk , Fiyat
-- Coalesce fonksiyonu iki parametre alir. Hangi kolon uzerinde calisacagi ve hangi degeri kullanacagi.
-- ilgili kolon null degere sahip ise bizim belirttigimiz deger geriye dondurulur.
-- null degil ise kolonun kendi degeri geriye dondurulur.
select ProductID,Name,Coalesce(Color,'Belirtilmemiş') as Color,ListPrice
from Production.Product order by newid()
-- order by newid() kullandigimizda sonuclari rastgele siralayabiliriz.

select ProductID,Name,Coalesce(Color,'Belirtilmemiş') as Color,ListPrice
from Production.Product where ListPrice != 0 order by newid()



create table dbo.Oyun
(
  ID int PRIMARY KEY IDENTITY(1,2),
  Ad nvarchar(60) not null,
  Fiyat money DEFAULT 0,
  SonIslemTarihi datetime DEFAULT getdate()
)

select * from dbo.Oyun

insert into dbo.Oyun values ('PES 2009',59.90,'20090101')
insert into dbo.Oyun values ('PES 2008',59.90,'2008-10-07 13:48:15.967')
insert into dbo.Oyun (Ad,SonIslemTarihi) values ('Fifa 2009','20090102')
insert into dbo.Oyun (Ad,Fiyat) values ('WorldWide Soccer 2009',9.90)

select Ad,SonIslemTarihi,
        Year(SonIslemTarihi),
		Month(SonIslemTarihi),
		Day(SonIslemTarihi)
from dbo.Oyun





Umarım İşinizi görmüştür. İyi Çalışmalar.