MS Sql ile sorguya sıra numarası ekleme

MS Sql ile sorguya sıra numarası ekleme

MS Sql ile sorgulara bazen sıra numarası eklemek gerekebilir. Bu işlem için SQL 2005 versiyonunda RANK isminde bir fonksiyon gelmiştir.

Rank fonksiyon aşağıdaki gibi kullanılır. Ancak fonksiyon Sql server 2005 versiyonunda geliştirilmiş olup 2005 ve sonraki versiyonlarda kullanılabilir

SELECT RANK() OVER(ORDER BY SIRALAMALANI DESC) AS SIRA,SAHA1,SAHA2,SAHA3 FROM TABLOADI

Örnek: Tablo olmadığı için Select yapıları ile yapay bir tablo üretilmiştir. 

SELECT RANK() OVER(ORDER BY TARIH) AS SIRA,ADI,SOYADI,TARIH
FROM
(SELECT 'AHMET1' AS ADI,'DENEME1' AS SOYADI,'1982-02-10' AS TARIH UNION
SELECT 'AHMET2' AS ADI,'DENEME2' AS SOYADI,'1980-11-02' AS TARIH UNION
SELECT 'AHMET3' AS ADI,'DENEME3' AS SOYADI,'1983-02-12' AS TARIH UNION
SELECT 'AHMET4' AS ADI,'DENEME4' AS SOYADI,'1980-09-14' AS TARIH UNION
SELECT 'AHMET5' AS ADI,'DENEME5' AS SOYADI,'1980-03-16' AS TARIH UNION
SELECT 'AHMET6' AS ADI,'DENEME6' AS SOYADI,'1978-02-03' AS TARIH UNION
SELECT 'AHMET7' AS ADI,'DENEME7' AS SOYADI,'1986-02-01' AS TARIH UNION
SELECT 'AHMET8' AS ADI,'DENEME8' AS SOYADI,'1985-02-01' AS TARIH UNION
SELECT 'AHMET1' AS ADI,'DENEME10' AS SOYADI,'1985-02-10' AS TARIH UNION
SELECT 'AHMET9' AS ADI,'DENEME9' AS SOYADI,'1983-06-01' AS TARIH) AS A1

Sonuç: 

SIRA ADI SOYADI TARIH
1 AHMET6 DENEME6 03.02.1978
2 AHMET5 DENEME5 16.03.1980
3 AHMET4 DENEME4 14.09.1980
4 AHMET2 DENEME2 02.11.1980
5 AHMET1 DENEME1 10.02.1982
6 AHMET3 DENEME3 12.02.1983
7 AHMET9 DENEME9 01.06.1983
8 AHMET8 DENEME8 01.02.1985
9 AHMET1 DENEME10 10.02.1985
10 AHMET7 DENEME7 01.02.1986

 


İlgili Yazılar