SQL Server’da Sayı İçeren VARCHAR Sütununu Sıralamak

Herkese merhaba,

Bu yazıda SQL Server’da sayı içeren VARCHAR sütununu sıralamak hakkında bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda sıralama yapacağınız sütunlarda sayı ve yazılar iç içe geçmiş olabilir ve bunları sıralama ihtiyacı da hissedebilirsiniz.

Bu konu ile ilgili basit bir örnek yaptım. Siz de kendi tablolarınız üzerinde bu işlemi deneyebilirsiniz.

--Test tablo oluşturma işlemi

IF OBJECT_ID('tempdb..#TestTablo') IS NOT NULL 
    DROP TABLE #TestTablo;

CREATE TABLE #TestTablo (Veri VARCHAR(100));

INSERT INTO #TestTablo
VALUES ('10'), ('21'), ('100'),('40'),  ('A'), ('B'), ('C1'), ('1D'), ('10HH'), ('0HH')


--Sıralama İşlemi


SELECT Tablo.Veri
FROM #TestTablo Tablo
    CROSS APPLY
(
    VALUES
        (PATINDEX('%[^0-9]%', Tablo.Veri))
) PI (I)
    CROSS APPLY
(
    VALUES
        (TRY_CONVERT(INT, NULLIF(ISNULL(LEFT(Tablo.Veri, NULLIF(PI.I, 0) - 1), LEN(Tablo.Veri)), '')))
) TC (L)
ORDER BY CASE
             WHEN TC.L IS NULL THEN
                 1
             ELSE
                 0
         END,
         TC.L,
         Tablo.Veri;

Yukarıdaki kod bloğunu çalıştırdığınızda aşağıdaki sonucu göreceksiniz.

SQL Server'da Sayı İçeren VARCHAR Sütununu Sıralamak

Görüldüğü üzere sayı içeren VARCHAR sütunları sıralanmış oldu.

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

95 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.

Aşağıdaki Yazılar da İlginizi Çekebilir

Yazı kopyalamak yasaktır!