:::: MENU ::::

Ms Sql 'de Order by,asc,desc,like, in,not in ve Aggregate Funchtion Kullanımı

Sizinle paylaşacağım örneklerde “AdventureWorks” üzerinde çalışacağım. Veritabanı sunucusu olarak da SQL 2012’i kullanıyor olacağım.
 


 --Order by ile Sıralama işlemleri
 --Getirilen  sorgular 1 yada daha çok kolona göre  tersten yada düzden sıralanmak istenebilir.
 --Sıralama yapmak için orderby anahtar kelimesi kullanılır

 --Ürünlerin adlarını ve fiyatlarını getirelim ve fiyat alanına göre sıralı sekilde sıralayalım

  select Name,listprice
 from Production.Product
 Order by ListPrice asc--artan sekilde sıralanacaktır.

 --Fiyat alanına göre tersten sıralayalım.

  select Name,listprice
 from Production.Product
 Order by ListPrice desc  -- azalan sekilde sıralanacaktır.

 ---Asc  yada desc  ifadesi yazılmaz ise otomatik olarak asc sıralanacaktır.

 ---Sorgu : Id değeri 1 ile 4 arasında olan ürünleri ,Id alanına göre tersten sıralayalım.
 select Name,listprice,ProductID from Production.Product
 where ProductID between  1 and 4
 order by ProductID desc

 --like anahtar kelimesi
 --where ile kolon bazlı sorgulama yapabiliyoruz.Ancak hücre içerisinde degerlere kriter koymak için like anahtar
 --kelimesi kullanılır.

 --sorgu:
 --Ad alanının içerisinde a geçen ürünler
 select Name
 from Production.Product
 where Name like '%a%'--içerisinde a geçen ürünler

 --A ile başlayan ürünler
 select Name
 from Production.Product
 where Name like 'a%'--a ile başlayan ürünler


 -- e ile biter ürünler
  select Name
 from Production.Product
 where Name like '%e' -- e ile biten ürünler

 --ikinci harfi d olan ürünler gelsin
 select Name
 from Production.Product
 where Name like '_d%'--ikinci harfi d olan ürünler

 --ikinci harfi l olan ve 5 harf olanü ürnler
 select Name
 from Production.Product
 where Name like '_l___'
 --Her bir karakter için bir alt çizgi

 --Soru :içerisinde b harfi olan veya a harfi olan,rengi kırmızı yada siyah yada mavi olan,fiyatı 100 ile 500 arasında olan
 --ürünleri fiyat alanına göre tersten siralayalım.
 select Name,ListPrice,Color
 from Production.Product
 where(Color='Black' or Color='Red' or Color='Blue')-- (Color in ('Red','Black','Blue'))  --kısa yolu
 and  (ListPrice between  100 and 500)
 and (Name  like '%b%' or Name  like  '%a%')
 order by ListPrice desc

 --in ve not in ;
 --Rengi kırmızı siyah veya mavi olan ürünler
 select Name,Color from Production.Product
 where (Color in ('Red','Black','Blue'))

 --olmayanlar denildiğinde,
  select Name,Color from Production.Product
 where (Color not in ('Red','Black','Blue'))

 --like ile kritere devam:
 --A dan H 'a kadar olan harfle baslayan ürünler
 select Name from Production.Product
 where Name like '[A-H^]%'

 --A ile b ile C ile başlayanlar
  select Name from Production.Product
 where Name like '[ABC]%'

 --a dan h a kadar olanlar ile başlayıp,ikinci harfi a,d veya n olanlar
  select Name from Production.Product
 where Name like '[A-H^][adn]%'


 --Aggregate Funchtion
 --AVG,Max,Min,Sum,Count
 --AVG : ortalama alır .

 --P.P tablosundaki tüm ürünlerin fiyat ortalaması nedir
 select AVG(ListPrice) 'Ortalama Fiyatı' from Production.Product

 --P.P tablaosundaki ,tüm ürünlerin toplam fiyatı
  select SUM(ListPrice) 'Toplam' from Production.Product

  --P.P tablosundaki  en ucuz ürünün fiyatı
   select Min(ListPrice) 'En ucuz' from Production.Product

     --P.P tablosundaki  en pahalı ürünün fiyatı
   select Max(ListPrice) 'En pahalı' from Production.Product

   --P.P tablosundaki tüm ürünler kaç adettir.
   select COUNT(*) from Production.Product

   --Ortalama sağlama
   select AVG(ListPrice) 'Ortalama',SUM(ListPrice)/COUNT(*)
   'Custom Ortama'from Production.Product

   --Soru: rengi siyah olan ürünlerin toplam fiyatı nedir.
   select SUM(ListPrice) from Production.Product
   where Color='Black'

   --Depodaki tüm ürünleri satsam ne kadar para kazanırım..
   select SUM(Listprice*safetyStocklevel) from Production.Product

   --renk siyah yada mavi ürünlerde %2 lik bir indirim yaparsam ,indirimsiz haline göre zararım be olur.

	 select SUM((Listprice*safetyStocklevel)*0.98) 'indirimli hali'
			,SUM(Listprice*safetyStocklevel)	'indirimsiz hali'
			,SUM(Listprice*safetyStocklevel)-SUM((Listprice*safetyStocklevel)*0.98) 'Fark'
			from Production.Product
	where (Color='Black' or Color='Blue')


One Comment

So, what do you think ?