SQL Server’da Noktalama İşareti ile Ayrılmış Sütunları Ayırmak

Herkese merhaba,

Bu yazıda SQL Server’da noktalama işareti ile ayrılmış sütunların ayrılması hakkında bilgi vereceğim.

Konuyu anlamak adına aşağıdaki örneği inceleyin.

--Tablonun oluşturulması

CREATE TABLE KisiDetay
(
    ID INT,
    Ad VARCHAR(50),
    Adres VARCHAR(50)
);


--Tabloya veri eklenmesi


INSERT INTO KisiDetay
VALUES
(100, 'Yavuz-Hasan-Bilge', 'Başakşehir|İstanbul|Türkiye'),
(200, 'Pelin-Büşra-Kübra', 'Ataköy|İstanbul|Türkiye'),
(300, 'Ahmet-Mehmet-Yasin', 'Yenibosna|İstanbul|Türkiye'),
(400, 'Yavuz-Emre-Abdullah', 'Yeşilköy|İstanbul|Türkiye'),
(500, 'Güneş-Yıldız-Emre', '10 Avcılar|İstanbul|İstanbul');

Burada KisiDetay diye bir tablo bulunmakta. Tabloyu oluşturun ve aşağıdaki sorguyu çalıştırın.

SELECT * FROM dbo.KisiDetay

SQL Server’da Noktalama İşareti ile Ayrılmış Sütunları Ayırmak

Görüldüğü üzere kimisi tire ile kimisi de dikey çizgi ile ayrılmış durumda. Şimdi her birini ayrı bir sütunda gösterebilme kodunu inceleyelim.

SELECT [ID],
       Ad,
       Adres,
       REPLACE(LEFT(Ad, CHARINDEX('-', Ad)), '-', ' ') AS İlk_Ad,
       CASE
           WHEN CHARINDEX('-', REVERSE(Ad)) + CHARINDEX('-', Ad) < LEN(Ad) THEN
               SUBSTRING(Ad, CHARINDEX('-', (Ad)) + 1, LEN(Ad) - CHARINDEX('-', REVERSE(Ad)) - CHARINDEX('-', Ad))
           ELSE
               'NULL'
       END AS Orta_Ad,
       REPLACE(REVERSE(SUBSTRING(REVERSE(Ad), 1, CHARINDEX('-', REVERSE(Ad)))), '-', '') AS Soyad,
       REPLACE(LEFT(Adres, CHARINDEX('|', Adres)), '|', ' ') AS Yaşadığı__İlçe,
       CASE
           WHEN CHARINDEX('|', REVERSE(Adres)) + CHARINDEX('|', Adres) < LEN(Adres) THEN
               SUBSTRING(
                            Adres,
                            CHARINDEX('|', (Adres)) + 1,
                            LEN(Adres) - CHARINDEX('|', REVERSE(Adres)) - CHARINDEX('|', Adres)
                        )
           ELSE
               'Null'
       END AS Yaşadığı_İl,
       REPLACE(REVERSE(SUBSTRING(REVERSE(Adres), 1, CHARINDEX('|', REVERSE(Adres)))), '|', '') AS Yaşadığı_Ülke
FROM KisiDetay;

Sorguyu çalıştırdığınız zaman aşağıdaki gibi bir sonuç alacaksınız.

SQL Server’da Noktalama İşareti ile Ayrılmış Sütunları Ayırmak

Görüldüğü üzere noktalama işareti ile ayrılmış alanlar sütunlara ayrılmış oldu.

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

717 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!