SQL'de Operatörler ve (CAST,LOWER ,UPPER ,LTRIM RTRIM,SUBSTRING ,REPLACE ,REVERSE )

SQL'de Operatörler

Sql operatörleriSQL’de de bir takım ifadeler ve operatörlere ihtiyaç duyulur. Yazılımda olduğu gibi matematiksel işaretlerin bir kısmı, bir takım mantıksal ifadeleri SQL ortamında da kullanmaktayız. Bunları örneklendirerek anlatmak istiyorum :

+   Operatörü : İki sayıyı ya da iki adet string ifadeyi toplamaya yarar.

select 5+12 as TOPLAM      -- TOPLAM=17
select '5'+'12' as YAZDIR --YAZDIR  =512 burada ' 'ile string olduğunu belirtiyoruz ve yan yana yazar.


–  Operatörü : İki sayıyı birbirinden çıkarma işlemi için kullanılır.

*  Operatörü : Bir sayıyı bir başka sayı ile çarpma için kullanılır.

/  Operatörü : Bir sayıyı bir diğer sayıya bölmek için kullanılır.

>  Operatörü : Büyüktür operatörüdür. WHERE deyimi ile birlikte kullanılır, ilk değerin ikincisinden büyüklüğünü kontrol eder.

<  Operatörü : Küçüktür operatörüdür. WHERE deyimi ile birlikte kullanılır, ilk değerin ikincisinden küçüklüğünü kontrol eder.

<=  Operatörü : Küçük eşittir operatörüdür. WHERE deyimi ile birlikte kullanılır, ilk değerin ikincisinden küçüklüğünü ve ona eşitliğini kontrol eder.

= Operatörü : Eşitlik operatörüdür.

OR Operatörü : SELECT deyimi ile birlikte kullanılır. Veya anlamına gelir.


AND Operatörü : SELECT deyimi ile birlikte kullanılır. Belirtilen tüm durumların geçerli olmasını kontrol eder. Yani tüm şartlar sağlanmalıdır.

NOT Operatörü : LIKE deyiminin tersidir aslında. Bir durumum benzememe halini kontrol eder.

? , _ Operatörü : ? veya _ olarak kullanılabilir. Underscore karakter olarak bilinirler. Tek bir karakter yerine geçer

%, * Operatörü : * veya % olarak kullanılabilir. Birden fazla karakter yerine geçer.

like Operatörü : Bir metin içerisindeki belirlenen kaydı bulmak istediğimizde like ifadesi ile şart belirleyip ifade bulunur.
Örneğin Empoyees tablosunda adında 'ang' geçenleri çağıralım.

select * from Employees where FirstName like '%ang%'

şeklinde olur ki bunlarda ilgili tüm örnekleri ileriki aşamalarda göreceğiz.

CAST : ifadede dönüşüm işlemi uygulanacaksa Cast kullanılabilir.

select CAST ('123' as int0)+CAST('120' as int ) as SONUC --burada 123 ve 120 stringlerini int 'e çevirip topla dedik.

LOWER : Yazılan metni küçük harflere çevirir.

select LOWER ('OkTaYaLTaN') as kucukoldu

UPPER :Yazılan metni büyükharflere çevirir.

select UPPER ('OkTaYaLTaN') as buyukoldu

LTRIM : Metinde sol boşlukları sil.

select LTRIM ('                  OkTaYaLTaN')

RTRIM : Metinde sağ boşluğu sil

select RTRIM ('                  OkTaYaLTaN'                                             )

SUBSTRING : Verilen metnin belirtilen karakterinden ,belirtilen uzunluğuna kadar olan parçasını alıyor.

select SUBSTRING ('SQL hayırlı olsun',4,14) -- Çıktımız metnin 4. karakterinden başlayıp 14 karakter daha alarak "hayırlı olsun" ifadesini yazdırır.


REPLACE : Verilen ifadede değişecek ifadeyi belirtip değiştirilecek ifade ile güncelleriz.

select REPLACE ('SQL hayırlı olsun','SQL','Geleceğin') -- burada SQL i silip onu Geleceğin olarak güncelleyip yazdırdık.

REVERSE : Ters Çevirme işlemi yapar

select REVERSE ('Oktay') as SONUC -- SONUC =yatkO olur.

MAX,MIN,AVG : Üçününde kullanımı aynıdır. Belirtilen kolondaki koşula göre değer döndürür.

select MAX(MAAS) -- Maaşı en yuksek olanı döndürür gibi.


COALESCE  : Şöyle ki kolonun boş olup olmamasını kontrol ediyor, şayet boş ise belirtmiş olduğumuz bir başka kolonu yazabilir , yazacağımız kolonda boş ise default değer atayabileceğimiz bir operatördür. Aşağıdaki ilk sorgu sonucunda  Priority,CompanyCode alanları NULL dır.
İkinci sorguda ise Priority NULL ise bu kolonda CompanyCode alanındaki değeri göster , CompanyCode te NULL ise defauly olarak BOŞ DATA yazdır diyoruz

SELECT OrderCode,Priority,CompanyCode,DocumenntNumber  FROM [dbo].[Order] where OrderId=222

SELECT OrderCode,COALESCE(Priority,CompanyCode,'BOŞ DATA') as Priority ,CompanyCode,DocumenntNumber FROM [dbo].[Order] where OrderId=222




Örnekler :


SELECT REPLACE('SQL Deneme''SQL''Oracle'AS Result;


SELECT SUBSTRING('SQL Deneme'13AS Result;


SELECT CHARINDEX('t''Customer'AS Result;   -- t yi ilk bulduğu karakter sayısını verir

SELECT CHARINDEX('mer''Customer'3AS MatchPosition; -- kaçıncı karakterden sonra arayacağını belirtmek istersen