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 |