28 Nisan 2015 Salı

T-SQL İpucu: CONCAT Fonksiyonu

Merhaba arkadaşlar,

Size SQL Server 2012 ile birlikte gelen yeni bir Built-in Function olan CONCAT'ten ve kullanımından bahsetmek istiyorum.

Bildiğiniz gibi SQL Server 2012 öncesinde SELECT içerisindeki bazı değerleri ve metinleri birleştirmek için aşağıdaki gibi bir yöntem uyguluyorduk:

SELECT 'Bir' + ',' + 'İki' + ',' + 'Üç'

Eğer tüm alanlar yukarıdaki gibi metinse, bunda bir sorun olmuyordu. Fakat yukarıdaki kodu aşağıdaki gibi değiştirdiğimizde

SELECT 'Bir' + ',' + 'İki' + ',' + 'Üç' + ',' + 12345

INT ile VARCHAR uyuşmadığı için Conversion hatası alıyorduk. Ben bunu bu örnekte doğrudan literal değerlerle örnekledim, ama biliyorsunuz ki VARCHAR ve INT veritiplerinden oluşan alanlardaki verileri birleştirmeye çalıştığımızda da aynı hatayı alacağız.

İşte bunları çok düşünmemek ve pratik bir şekilde alan değerlerini tek bir metinde birleştirmek için aşağıdaki gibi CONCAT komutunu kullanabiliriz.

SELECT CONCAT('Bir', ',', 'İki', ',', 'Üç', ',', 12345)

Böylece veritipini çok düşünmeden String ve Int alanları aynı fonksiyon içinde birleştirebilirsiniz.

Ayrıca CONCAT, NULL değerlerle de gayet iyi başa çıkıyori ISNULL ile falan kontrol ettirmenize gerek kalmıyor, örneğin:

SELECT 'Bir' + ',' + 'İki' + ',' + 'Üç' + ',' + NULL + 12345

Bu komutu çalıştırdığınızda sonuç NULL döner, fakat aşağıdakini çalıştırdığınızda sonuç:

Bir,İki,Üç,12345

Olacaktır.

İyi kodlamalar!
Ekrem Önsoy

Hiç yorum yok: