Son Haberler
Anasayfa / Yazılım / SQL / SQL Matematiksel Operatörler

SQL Matematiksel Operatörler

SQL’de sayısal değerler üzerinde işlem yapabilmek için matematiksel operatörleri kullanabiliriz. + ile toplama, – ile çıkarma, * ile çarpma, / ile bölme ve % ile bölmeden kalanı bulma (mod alma) gibi işlemleri yapabilmekteyiz. Örnekler :

SELECT 3+5;
SELECT 6-1;
SELECT 3*5;
SELECT 8/2;
SELECT 8%3;

010101

SELECT 25 / 4 AS "Bölüm Sonucu", 25 % 4 AS "Mod Sonucu";

010102

Şimdi bir tablo üzerinde ki alanlar içinde çarpma işlemi yapalım.

SELECT OrderQty, OrderQty * 3 AS "3 Katı"
FROM Sales.SalesOrderDetail;

Sales.SalesOrderDetail tablosundaki OrderQty alanını hem normal hemde 3 katı ile gösterdim.

010103

Şimdi de Sales.SalesOrderDetail tablosunda hesaplanmış bir kolon (computed field) ile verilerimizi karşılaştıralım.

SELECT OrderQty * UnitPrice * (1.0 - UnitPriceDiscount)
AS Hesaplanan, LineTotal FROM Sales.SalesOrderDetail

010104

SQL Server Management Studio’da Computed diye bir özellik mevcuttur. Yeri gelmişken kısaca değinmek istiyorum. Computed kolon herhangi bir tablo tasarlanırken istenilen kolonun yani istenilen alanın Computed Column Specification bölümünde istenilen şekilde formülize edilerek oluşturulması ile elde edilir. Yani aynı tablo içindeki diğer kolonların hesap işlemine tabi tutulması. Şöyle bir şeyi hayal ediniz. E-Ticaret siteniz var ve ürün satıyorsunuz. Ürünün bir fiyatı var. Zaman zaman indirim yapıyorsunuz. Bir de KDV var bu durumları dikkate alıp bir computed alanda indirim ve KDV miktarlarını hesaplayarak yeni bir alan oluşturabilirsiniz. Böylelikle sorguda bu hesaplama yapılacağına direkt olarak hesaplanmış kolondan veriler çekilebilir.

SELECT SpecialOfferID, MaxQty, DiscountPct,
DiscountPct * ISNULL(MaxQty,'') 
AS "Maksimum İndirim" 
FROM Sales.SpecialOffer

Bu sorgumda Sales.SpecialOffer tablosunda eğer MaxQty alanı NULL ise bunu boş kabul et, yani sıfır kabul et diyerek indirim oranını DiscountPct başına gelen indirim ile çarparak Maksimum İndirimi buldum

010105

Şimdi Sales.SpecialOffer tablosundan SpecialOfferID, Description alanlarını ve MaxQty ile MinQty alanlarının farkını Fark alanında gösteren sorguyu yazalım.

SELECT SpecialOfferID, Description, 
MaxQty - MinQty AS Fark
FROM Sales.SpecialOffer

010106

Şimdi Sales.SpecialOffer tablosundan SpecialOfferID, Description alanlarını ve MinQty ile DiscountPct alanlarının çarpımını Çarpım alanında gösteren sorguyu yazalım.

SELECT SpecialOfferID, Description, 
MinQty * DiscountPct AS "Çarpım"
FROM Sales.SpecialOffer

010107

Şimdi Sales.SpecialOffer tablosundan SpecialOfferID, Description alanlarını ve MaxQty ile DiscountPct alanlarının çarpımını Çarpım alanında gösteren sorguyu yazalım. Ek olarak eğer MaxQty NULL ise bunun içeriğini 3 ile değiştirip çarpalım.

SELECT SpecialOfferID, Description, 
ISNULL(MaxQty,3) * DiscountPct AS "Çarpım"
FROM Sales.SpecialOffer

010108

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir