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.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.