Ana Sayfa > Programlama, SQL > Sql Server CSV (Comma Seperated Value) çıktı üretme

Sql Server CSV (Comma Seperated Value) çıktı üretme

27 Kasım 2009

Ö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)

sql-csv-output_1

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

sql-csv-output_2

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

sql-csv-output_3


İlgili diğer başlıklar:



  1. Kasım 15th, 2010 at 18:40 | #1

    sizinle aynı sonucu elde etmem için;

    SELECT REPLACE(substring(convert(nvarchar(max), (select ', ' + zaman from aralik FOR xml path(''), Type)), 3, 500), ' ', '') AS CSV

    sorgusunu yazmak zorunda kaldım sizde o yazdıgınız sorgu dogru calısıyor mu?

  2. Ekim 27th, 2011 at 09:54 | #2

    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.