MSSQL Fonksiyonları ve Kullanımları

  • 15.1.2016
  • tayyipyetis
  • MSSQL

mssqlHerkese yeniden merhaba, bu aralar internette çok fazla basit şeyleri aradığımı farkettim bazı temel fonksiyonları bile her kullanımda tekrar tekrar arıyordum ayrıca aynı şeyler yüzlerce farklı sitede var ve her seferinde karşıma başka bir tanesi çıkıyor en sonunda neden arayıp bulduklarımı bir araya toplayıp kendi sitemde yayınlamıyorum dedim :) bu sebeple önce mssql için böyle basit ama kullanışlı fonksiyonları aklıma geldiğince ve kullanım ihtiyacım doğduğunca burada paylaşacağım.

String Fonksiyonları

1- STUFF FONKSİYONU

ingilizcede madde, şey anlamına gelen stuff fonksiyonu replace ile benzerlik gösteriyor fakat ondan farkı string içerisinde bir indexden başlayıp belli uzunluktaki parçayı kesip yerine yenisini yazmanızı sağlıyor bir nevi substring ile replace'in birleştirilmiş şekli.

SELECT STUFF('Yazılımı seviyorum', 1, 8, 'Doğayı')
--Sonuç : Doğayı seviyorum

ilk parametre işlem yapılacak değeri, ikincisi başlangıç karakterinin sırasını(1 den başlıyor), üçüncüsü kesilecek karakter sayısını, dördüncüsü ise yerleştirilecek string değeri ifade eder. 

2- REPLACE FONKSİYONU

yer değiştirme anlamına gelen bu fonksiyon string bir ifade içinde başka bir string ifadeyi arar ve yenisi ile değiştirir. ilk parametre arama yapılacak değer ikinci aranılan değer üçüncüsü ise değiştirilecek değerdir

SELECT REPLACE('Yazılımı seviyorum', 'Yazılımı', 'Doğayı')
--Sonuç; : Doğayı seviyorum

 3- INSERSECT OPERATÖRÜ

İngilizce kesişme anlamına gelen bu operator iki veya daha fazla sorgu sonucunun kesişen değerlerini alır. diğer bir deyişle tüm sorgularda ortak olarak bulunan satırları alır. aşağıdaki örneği inceleyin

SELECT * FROM (VALUES (1), (1), (1), (2), (3), (1), (4)) AS X(liste)
INTERSECT
SELECT * FROM (VALUES (1), (1), (1), (2), (3), (1), (4)) AS X(liste)

Sonuç listesi 1,2,3,4 şeklinde gelecektir. Diğer bir örnek;

Öğrenciler Tablosu

ID

Adi

Soyadi

Bildigi_diller

5496

Ahmet

Çevik

ingilizce, almanca

2343

Mehmet

Şen

fransızca, ingilizce

6345

Ceyhun

Kıraç

japonca

4789

Ayşe

Güneş

ingilizce, almanca, fransızca

SELECT * FROM ogrenciler WHERE ','+bildigi_diller+',' LIKE '%,ingilizce,%'
INTERSECT
SELECT * FROM ogrenciler WHERE ','+bildigi_diller+',' LIKE '%,almanca,%'

Yukarıdaki sorgu ile hem ingilizce hem almanca hem de fransızca bilen kişileri listeliyoruz ve sonuç olarak bize “Ayşe Güneş” ve “Ahmet Çevik” isimli öğrenciler gelecektir.

 

Yorum Gönder

Diğer Makaleler

Etiketler