SQL Rehberi – Hazır Fonksiyonlar – 1

SQL’de işlemlerimizi daha kolay yapmamamızı sağlayan birçok fonksiyon bulunmaktadır. Çoğu zaman lazım olan bu fonksiyonları tek tek açıklamaya çalışacağım. Umarım faydalı olur.

ascii()

Açıklama: Girilen karakterlerin en solundakinin ascii numarsını döndürür.

Yazılış: int = ASCII ( karakter_girişi )

Örnek:

select ascii(‘ABC’) — 65
select ascii(‘A’) — 65
select ascii(‘Z’) — 65
select ascii(‘a’) — 97
select ascii(‘z’) — 122
select ascii(‘0’) — 48
select ascii(‘9’) — 57
select ascii(‘_’) — 95
select ascii(‘ ‘) — 32

char()

Açıklama: Girilen sayının ascii karakter karşılığını döndürür.

Yazılış: char= CHAR ( sayı )

Örnek:

select char(ascii(‘A’))  — A
select char(65)  — A
select char(145) — Sol tek tırnak: ‘
select char(146) — Sağ tek tırnak: ’

Not:

SQL: char(13) = satır başı, char(10) = satır atlama.
VB’deki: ‘vbCrLf’ veya Javascript/c#’daki \n gibi
Örnek:
Print ‘Kod listesi: ‘ + char(13) + char(10) + ‘A = Selam 1’ + char(13) + char(10) + ‘B = Selam 2’

Sonuç:

Kod listesi:
A = Selam 1
B = Selam 2

select nchar(65) — A
select unicode(‘A’) — 65

SQL’de ascii listesi almak için aşağıdaki komutu kullanabiliriz:

declare @strValue varchar(255)
declare @intCount int
declare @intCountMax int
set @intCount = 0
set @intCountMax = 255
forloop_begin:
  set @strValue = (select (convert(varchar(15),@intCount) + '-' + char( @intCount ) ))
  print @strValue
  set @intCount = @intCount + 1
  if ( @intCount <= @intCountMax ) begin
    goto forloop_begin
  end
forloop_end:

charindex()

Açıklama: girdiğimiz yazının içinden belirlediğimiz kısmın başlangıç karakterini döndürür, eğer yoksa 0 döner.

Yazılış: int = CHARINDEX ( expression1 , expression2 [ , start_location ] )

expression1 – Aranılacak olan text
expression2 – içinde arama yapılacak text.
Start_location = 0 veya negatif = başlangıç.

Örnek :
select charindex( ‘Selam’, ‘Yeniden Selam Herkese’)  — 7
select charindex( ‘/’, ‘http://www.ftorun.com/’,8) — 22

difference()

Açıklama: iki soundex değerini karşılaştırıp 1 – 4 arasında bir numara dödürür. Birbirlerine olan benzerliklerine göre 4’e yakın bir değer verir.

Soundex nedir: Bir kelimeden fonetik bir kod cikarma yontemidir. SQL’de SOUNDEX() komutu ile verdiğimizde bize 4 haneli soundex değeri, difference ise iki soundex degerini kiyaslayarak iki kelimenin birbirine ne kadar yakin okundugunu cikarilabilir.

Yazılış:

int = DIFFERENCE ( yazi_1 , yazi_2 )

Örnek:

SELECT SOUNDEX(‘Hello’) — H400
select DIFFERENCE(‘Hello’,’Hello’) — 4

SELECT SOUNDEX(‘ankara’) — A526
select DIFFERENCE(‘ankara’,’ankara’) — 4

SELECT SOUNDEX(‘ali’) — A400
SELECT SOUNDEX(‘veli’) — V400
select DIFFERENCE(‘ali’,’veli’) — 3

SELECT SOUNDEX(‘abcdefg’) — A123
SELECT SOUNDEX(‘tuvwxyz’) — T122
select DIFFERENCE(‘abcdefg’,’tuvwxyz’) — 2  (1 "1" + 1 "2" = 2)

SELECT SOUNDEX(‘dog’) — D200
SELECT SOUNDEX(‘dot’) — D300
select DIFFERENCE(‘dog’,’dot’) — 3  (1 "D" ve 2 "0" = 3)

select SOUNDEX(‘hakan’) — H250
select SOUNDEX(‘melih’) — M400
select DIFFERENCE(‘hakan’,’melih’) — 1  (Soundex değerlerinden sadece sondaki 0 aynı olduğu için 1.)

–Soundex değerlerinin hepsi aynıysa geriye 4 döner.
select SOUNDEX(‘1’) — 0000
select SOUNDEX(‘2’) — 0000
select SOUNDEX(’20’) — 0000
select SOUNDEX(‘100’) — 0000
select DIFFERENCE(‘1′,’2’) — 4
select DIFFERENCE(’20’,’100′) — 4