SQL Server’da ISNUMERIC Fonksiyonu Yerine TRY_PARSE Fonksiyonu Kullanmak

Herkese merhaba,

Bu yazıda SQL Server’da ISNUMERIC fonksiyonu yerine TRY_PARSE fonksiyonu kullanmak ile ilgili bilgi vermeye çalışacağım.

SQL Server’da özelleştirilmiş fonksiyonları kullanmayanımız yoktur. Bu fonksiyonlar çoğu zaman hayat kolaylaştırır ancak bir o kadar da işinize yaramayabilir.

Bu yazıda oluşturulmuş olan özelleştirilmiş fonksiyonlarda dikkat edilmesi gereken noktalardan bahsedeceğim.

ISNUMERIC fonksiyonu verilen değerin sayısal bir ifade olup olmadığını kontrol etmek için kullanılır. Kullanımı : ISNUMERIC (ifade) şeklindedir. eğer ifade sayısal ise sorgu sonucu 1 döner diğer durumda 0 döner.

Aşağıdaki sorguyu inceleyelim.

SELECT
     ISNUMERIC('123') as '123'
    ,ISNUMERIC('abc') as 'abc'
    ,ISNUMERIC('-') as '-'
    ,ISNUMERIC('+') as '+'
    ,ISNUMERIC('$') as '$'
    ,ISNUMERIC('.') as '.'
    ,ISNUMERIC(',') as ','
    ,ISNUMERIC('\') as '\'

Yukarıdaki sorguyu çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.

SQL Server'da ISNUMERIC Fonksiyonu Yerine TRY_PARSE Fonksiyonu Kullanmak

Yukarıdaki sonuca dikkat edersek ISNUMERIC fonksiyonu bazı karakterleri de sayısal olarak ele alır. Örneğin: – (eksi), + (artı), $ (dolar), \ (ters eğik çizgi).

Yukarıda “abc” değeri için “0” ve geri kalan sütun değerleri için “1” değerini döndürür. Aslında bu bir hatadır. Bu nedenle, ISNUMERIC fonksiyonunu kullanırken çok dikkatli olmamız ve T-SQL mantığınındaki olası tüm durumları göz önünde bulundurmamız gerekecektir.

Aynı işlemi TRY_PARSE fonksiyonunu kullanarak yapalım.

SELECT
     TRY_PARSE('123' as int) as '123'
    ,TRY_PARSE('abc' as int) as 'abc'
    ,TRY_PARSE('-' as int) as '-'
    ,TRY_PARSE('+' as int) as '+'
    ,TRY_PARSE('$' as int) as '$'
    ,TRY_PARSE('.' as int) as '.'
    ,TRY_PARSE(',' as int) as ','
    ,TRY_PARSE('\' as int) as '\'

Yukarıdaki sorguyu çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.

SQL Server'da ISNUMERIC Fonksiyonu Yerine TRY_PARSE Fonksiyonu Kullanmak

Yukarıdaki sorgu, ilk sütun değerini sayısal olarak gösterir ve kalan değerler için NULL değerini döndürür.

Ayrıca TRY_PARSE fonksiyonu, doğrulama için diğer NUMERIC & DATETIME veri türleri ile birlikte de kullanılabilir.

SELECT
     TRY_PARSE('123' as int) as '123'
    ,TRY_PARSE('123.0' as float) as '123.0'
    ,TRY_PARSE('123.1' as decimal(4,1)) as '123.1'
    ,TRY_PARSE('$123.55' as money) as '$123.55'
    ,TRY_PARSE('2023/09/20' as datetime) as '2023/09/20'

Yukarıdaki sorguyu çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.

SQL Server'da ISNUMERIC Fonksiyonu Yerine TRY_PARSE Fonksiyonu Kullanmak

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

166 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!