Ana Sayfa > SQL ServerT-SQL > Sorgu sonucunu virgül ile ayrılmış olarak oluşturmak

Sorgu sonucunu virgül ile ayrılmış olarak oluşturmak

Cursor kullanarak sorgu sonucunu virgül ile ayrılmış tek satır şeklinde aşağıdaki gibi alabilirsiniz:

DECLARE ogrCUR CURSOR FOR
    SELECT top 10 [adi] FROM [tbogrenci] ORDER BY [adi]
DECLARE @ogrenciler    VARCHAR(8000)
DECLARE @ogrenciADI     VARCHAR(10)
OPEN ogrCUR
FETCH NEXT FROM ogrCUR INTO @ogrenciADI
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @ogrenciler = ISNULL(@ogrenciler + ',', '') + @ogrenciADI
    FETCH NEXT FROM ogrCUR INTO @ogrenciADI
END
CLOSE ogrCUR
DEALLOCATE ogrCUR
SELECT @ogrenciler AS "İlk 10 Öğrenci"
GO

ve işte çıktısı:

Aynı işlemi Cursor kullanmadan yapmak istersek:
DECLARE @ogrenciler VARCHAR(8000)

SELECT Top 10 @ogrenciler = ISNULL(@ogrenciler + ',', '') + adi
FROM tbogrenci
ORDER BY adi

SELECT @ogrenciler AS "İlk 10 Öğrenci"

Dilerseniz bu tip bir işlemi function haline getirip;

CREATE FUNCTION [dbo].[ilkonogrenci] ()
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @ogrenciler VARCHAR(8000)
SELECT Top 10 @ogrenciler = ISNULL(@ogrenciler + ',', '') + adi
FROM tbogrenci
ORDER BY adi
RETURN @ogrenciler
END
GO

aşağıdaki gibi kullanabilirsiniz.

Select dbo.ilkonogrenci()

Beğenmediniz mi? Bide bu var:

SELECT ID,
stuff((
SELECT ', ' + ADSOYAD
FROM E_is_basi_egitim_Form_Tablo1 as t1
where t1.FORMID = t2.ID
FOR XML PATH('')
), 1, 2, '')
FROM E_is_basi_egitim_Form as t2
--WHERE (FORMID = 345931)
GROUP BY ID

Yorum Yaz