Sql Server CSV (Comma Seperated Value) çıktı üretme
Özellikle katalog tablolarının CSV çıktılarına sıklıkla ihtiyaç duyarız. Aşağıdaki sql script’ini kullanarak, siz de tablolarınızdan CSV çıktı alabilirsiniz.
Öncelikle tablomuzun orjinal haline bakalım;
SELECT Name FROM HumanResources.Shift WITH (NOLOCK)

Şimdi öyle bir sql sorgusu yazacağız ki, çıktımız şu şekilde olacak;
Day, Evening, Night
SELECT
SUBSTRING((
SELECT ', ' + Name
FROM HumanResources.Shift WITH (NOLOCK)
FOR XML PATH('')
), 3, 8000) AS CSV
Sorguyu FOR XML anahtar kelimeleri ile çalıştırdığımıza ve PATH olarak ” (boş string) verdiğimize dikkat edin.
SELECT ', ' + Name
FROM HumanResources.Shift WITH (NOLOCK)
FOR XML PATH('')
Böylece aşağıdaki sonucu elde etmiş olduk;

Son olarak, sql sorgusunu SUBSTRING fonksiyonu içerisine koyduk, böylece baştaki virgül ve boşluk karakterlerinden (“, “) kurtulmuş olduk.

İlgili diğer başlıklar:
- Sql Server 2008′de Çoklu Insert İşlemi
- Sql Server İstatistiklerin Son Güncellenme Zamanını Bulma
- Sql Server Where ve Join Filtreleri Karşılaştırma
- Sql Server Query Plan Cache
- Sql Server’da Hash işlemi
- Sql Server’da En Meşgul Veritabanını Bulmak
- Sql Server 2008 Except ve Intersect Anahtar Kelimeleri
- Sql Server veritabanında en büyük 10 tablo
- Sql Server Identity Sutunları Belirlemek
- Sql Server COUNT ve COUNT_BIG Fonksiyonları
sizinle aynı sonucu elde etmem için;
SELECT REPLACE(substring(convert(nvarchar(max), (select ', ' + zaman from aralik FOR xml path(''), Type)), 3, 500), ' ', '') AS CSVsorgusunu yazmak zorunda kaldım sizde o yazdıgınız sorgu dogru calısıyor mu?
Windows 7′de aksi belirtilmediği sürece kullanıcı grubu C diskine dosya yazamamakta. Bu sorunla bende karşılaştım. Bir klasör açıp içerisine atmak sorunu çözebilir.