folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder SQL Server'da STUFF Fonksiyonuyla Birden Fazla Kaydı Tek Satırda Gösterme İşlemi



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

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    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.

    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

     

    İ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

     

    Ş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.

    Sonuç

     

    Bol sorgulu günler.

    Kaynak: https://www.ontedi.com/sql/sql-serverda-stuff-fonksiyonuyla-birden-fazla-kaydi-tek-satirda-gosterme-islemi


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    siyahbereli
    siyahbereli's avatar
    Kayıt Tarihi: 03/Ocak/2006
    Erkek

    Emeğine sağlık faydalı


    Yapmadıklarınıza pişman olmaktansa, Yaptıklarınıza pişman olun...Yapın pişman olun, yada yapmayın yine pişman olun.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    arkinfes
    arkinfes's avatar
    Kayıt Tarihi: 07/Haziran/2007
    Erkek


    Do majör soylu ve açık sözlü , Do minör patetik , Re majör parlak , Re minör melankolik , Mi bemol majör soylu ve patetik , aydinlik ama soylu ve karamsar tonmu lazim ozaman; mi majör , Mi minör doğanin ilk minör tonu olmasina karsin biraz melankoliktir , Fa majör karışıktır , Fa minör hepsinden patetiktir , Fa Diyez majör iste güçtür çünkü degiştirgeçlerle asiri yuklenmistir , Si majör parlak ve oyun bozannn :))
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    çok güzelmiş Ellerine sağlık.


    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
Toplam Hit: 1294 Toplam Mesaj: 4
sql birleştirme sql tek satırda join sql server stuff