SEO (Arama Motoru Optimizasyonu) Mikro İnteraktif ÜCRETSİZ - Google Play'den İndirin

SQL Server'da STUFF Fonksiyonuyla Birden Fazla Kaydı Tek Satırda Gösterme İşlemi

Veritabanı işlemleri yaparken bir kayda karşılık gelen birkaç farklı kaydı tek satırda göstermemiz gereken durumlar için kısa bir makale ile sizlerleyiz. SQL Server içerisindeki STUFF fonksiyonunu kullanacağız.

Elimizde şehirlerin ve ilçelerin olduğu iki tane tablo olduğunu düşünelim. Şehirler tablosunu inşaa edelim.
tblSehirler Tablosu
CREATE TABLE tblSehirler
(
sehir_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1) ,
sehir_adi VARCHAR(255)
)

INSERT INTO tblSehirler (sehir_adi) VALUES ('Adana')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Adıyaman')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Afyon')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Ağrı')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Amasya')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Ankara')

Oluşan şehirler tablosunun görselini paylaşalım.
Şehirler Tablosu
SQL Server'da STUFF Fonksiyonuyla Birden Fazla Kaydı Tek Satırda Gösterme İşlemi

İlçeleri de oluşturalım.
tblIlceler Tablosu
CREATE TABLE tblIlceler
(
ilce_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1) ,
sehir_ID INT,
ilce_adi VARCHAR(255)
)

INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Seyhan')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Ceyhan')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Yüreğir')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Sarıçam')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Çukurova')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (2, 'Kahta')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (2, 'Gölbaşı')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (2, 'Gerger')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Başmakçı')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Bayat')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Bolvadin')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Dinar')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (4, 'Diyadin')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (4, 'Doğubayazıt')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (4, 'Patnos')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (5, 'Göynücek')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (5, 'Gümüşhacıköy')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (5, 'Hamamözü')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Akyurt')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Altındağ')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Balâ')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Keçiören')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Çankaya')

Oluşan ilçeler tablosunun görselini paylaşalım.
İlçeler Tablosu
SQL Server'da STUFF Fonksiyonuyla Birden Fazla Kaydı Tek Satırda Gösterme İşlemi

Şimdi ise her şehire karşılık gelen tüm ilçeleri her şehirden tek kayıt gelecek şekilde yazalım.
STUFF Sorgusu
SELECT A.sehir_ID, A.sehir_adi AS Sehir,
STUFF
(
  (
    SELECT 
    ', ' + ilce_adi 
    FROM tblIlceler AS B 
    WHERE A.sehir_ID = B.sehir_ID
    FOR XML PATH('')
  ), 1, 1, ''
) AS Ilceler
FROM tblSehirler AS A

Kodlarımızın sonucuna ait görseli paylaşalım.
Örnek
SQL Server'da STUFF Fonksiyonuyla Birden Fazla Kaydı Tek Satırda Gösterme İşlemi

Yorumlar

Yorum Yaz

Avatar

REKLAM

DDos Koruma, Botnet Koruma, Layer 7 Saldırı koruması, Sanal sunucu, Vds sunucu

REKLAM

En Yeni Çizgi Filmler, Masallar ve Etkinlikler

REKLAM

SEO-Arama Motoru Optimizasyonu Uygulaması

REKLAM

Hayvan Sesleri Uygulaması

REKLAM

Çocuk Etkinlikleri Uygulaması

EN

  • Popüler
  • Yeni
  • Son Yorum