SQL Server ISNumeric() Fonksiyonu Nedir ?

Veritabanımızda datanın Numeric olup olmadığını sorguladığımız fonksiyondur. ISNUMERIC() fonksiyonu sonucu 0 döner ise sonuç numeric değil, 1 döner ise sonuç numeric tir.

Hızlıca bir kaç örnek ile konuyu ele alalım.

İlk örneğimiz de fonksiyona değerler gönderip sonuçlarını inceleyeceğiz.

select ISNUMERIC('www.sqlturkiye.com')

Yukarıda fonksiyona tırnak içinde karakter değer gönderiyoruz ve sonuca bakıyoruz.

Gördüğünüz üzere ilk başta dediğimiz gibi 0 döndürürse Numeric olmadığını biliyoruz. şimdi bir kaç örneği daha yapalım.

select ISNUMERIC(1)

Bu örneğimizde de gördüğünüz üzere fonksiyona gelen değerin numeric olduğunu görmekteyiz.

Şimdi ise boş bir karakter gönderelim ISNUMERIC() fonksiyonuna,

select ISNUMERIC(' ')

Boşluk karakteride numeric bir değer olmadığından 0 dönmektedir.

Bunların dışında diğer bir örneğimizde , Örneğin Application katmanında bir kısıtlama koymadık ve Personel adı ve TC Kimlik girdiğimiz bir ekran var ve bu ekranda TC Kimlik validasyonları yapılmadığından yanlışlıkla TC Kimlik yani örneğimizde IdentityNumber alanına karakterde girilmiş ve biz bu gibi kayıtları bulmak istiyoruz. İşte bu durumda ISNUMERIC() fonksiyonunu kullanarak bu datalara erişebiliriz.

İlk etapda bir Demo tablosu oluşturalım.

-- Demo tablomuzu oluşturuyoruz ...
CREATE TABLE demo_IsNumeric 
(
Id INT IDENTITY (1,1) PRIMARY KEY,
Name NVARCHAR
(100),
IdentityNumber CHAR
(11)
)

Daha sonra bir kaç örnek data basalım ,

-- Demo tablomuza data basıyoruz ...
INSERT INTO demo_IsNumeric VALUES ('Yusuf Kahveci','11111111111')
INSERT INTO demo_IsNumeric VALUES ('Yaşar Kahveci','22222222222')
INSERT INTO demo_IsNumeric VALUES ('Alex Boothe','33333333333')
INSERT INTO demo_IsNumeric VALUES ('Mari Doon','44444a44444')
INSERT INTO demo_IsNumeric VALUES ('Mex Lobern','55555555555')

Şimdi ise IdentityNumber kolonunda numeric olmayan dataları bulalım ,

-- Demo tablomuzda IdenitityNumber kolonunda  Numeric olmayan dataları bulmak için ...
select * FROM demo_IsNumeric WHERE ISNUMERIC(IdentityNumber)=0

Peki Numeric olan dataları görmek istersek ,

select *
FROM demo_IsNumeric
WHERE ISNUMERIC(IdentityNumber)=1

 

Kolay Gelsin

Leave a Reply

Your email address will not be published. Required fields are marked *