İki string veriyi toplayalım.
1 | SELECT 'ismail' + 'gürsoy' ; |
Person.Person tablosundan BusinessEntityID alanını tek, FirstName ve LastName alanını ise iki veri arasında boşluk olacak şekilde AdSoyad kolonu adında yeni bir kolonda toplayarak gösterelim. AdventureWorks veritabanını kullanıyorum.
12 | SELECT BusinessEntityID, FirstName + ' ' + LastName AS "AdSoyad" FROM Person.Person; |
Aynı sorgu olsun bu sefer Ad ve soyad arasına – ekleyerek gösterelim.
12 | SELECT BusinessEntityID, FirstName + '-' + LastName AS "AdSoyad" FROM Person.Person |
String veriler toplanırken karşılaşılan sorunlardan biri şudur. Eğer bir tablo içinde bir satırda yer alan verinin herhangi bir alanında (toplama işlemi, birleştirme işlemi yapmak istediğimiz alanların herhangi birisinde) NULL veri var ise işte o zaman geriye dönen değerlerde yanlışlıklar oluyor. Geriye dönen değer NULL oluyor. Bunu görmek için aşağıdaki sorguyu yazalım.
Person.Person tablosundan BusinessEntityID, FirstName, MiddleName ve LastName alanlarını seçerek FirstName, MiddleName ve LastName alanlarını Ad Soyad kolonu altında birleştirerek ve aralarında boşluk bırakarak listeleyelim.
12 | SELECT BusinessEntityID, FirstName + ' ' + MiddleName + ' ' + LastName AS "Ad Soyad" FROM Person.Person |
Sonuç :
Sonuçta bazı yerler görüldüğü üzere NULL. Bunun sebebi orjinal tabloda bazı satırlarda MiddleName alanının NULL verilerden oluşması. Diğer tarafta FirstName veya LastName veri içerse dahi string verilerde birleştirme yapılırken herhangi bir alanın NULL olması sonucu diğerlerinin içeriği ne olursa olsun birleştirme sonucu geriye NULL dönüyor. Bu durumu göz ardı etmemek gerekiyor.
Kaynak: https://www.ismailgursoy.com.tr/sqlde-string-verileri-birlestirme/
Bir Cevap Yazın