SQL Server’da Karakter Listeleme

Herkese merhaba,

Bu yazıda SQL Server’da karakter listeleme hakkında bilgi vereceğim.

Aslında bu bilgiyi veren ve kodları hazırlayan kişi Vedat Özer Bey. Sorguyu hazırlamış. Gerekli açıklamaları eklemiş. Bana da paylaşması kaldı.

Kendisine bu çalışması için ayrıca teşekkürler.

Aşağıdaki kodu kendi adınızla deneyebilirsiniz.

---=== SET TABANLI ÇÖZÜM 

DECLARE @HARF VARCHAR(8000) = 'YAVUZ SELIM KART';
WITH DIZISAYI ([Sira No])
AS (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
    FROM
    (
        VALUES
            (0),
            (0),
            (0),
            (0),
            (0),
            (0),
            (0),
            (0),
            (0),
            (0)
    ) a (n)
        CROSS JOIN
        (
            VALUES
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0)
        ) c (n)
        CROSS JOIN
        (
            VALUES
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0)
        ) d (n)
        CROSS JOIN
        (
            VALUES
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0),
                (0)
        ) e (n) )
SELECT [Sira No],
       [Karakter]
FROM
(
    SELECT [Sira No],
           SUBSTRING(@HARF, [Sira No], 1) AS [Karakter]
    FROM DIZISAYI
    WHERE LEN(@HARF) >= [Sira No]
) a
WHERE [Karakter] IS NOT NULL; 

---=== Döngü ile Çözüm; 

IF OBJECT_ID('tempdb..#sonuc') IS NOT NULL
BEGIN
    DROP TABLE #sonuc;
END;
CREATE TABLE #sonuc
(
    [Sira No] INT IDENTITY(1, 1),
    [Karakter] VARCHAR(5)
);
DECLARE @UZUNLUK INT,
        @SAY INT = 1;
SET @UZUNLUK =
(
    SELECT LEN(@HARF)
);
WHILE @UZUNLUK <> 0
BEGIN
    INSERT INTO #sonuc
    SELECT SUBSTRING(@HARF, @SAY, 1);
    SET @UZUNLUK = @UZUNLUK - 1;
    SET @SAY = @SAY + 1;
END;
SELECT *
FROM #sonuc;

Sorguyu çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.

SQL Server’da Karakter Listeleme

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

322 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!