by Eren
10. February 2010 22:07
Sual : Muallim efendi bir sualim var.
Diyelim bir tablodan select ile bir tutam veri çektik ve bu bir tutam veriyi başka bir tabloya atıcaz. Ama bu bir tutam veriye bir sıra numarası yani ecnebi tabiriyle Row Index eklememiz gerekiyor. Yani istediğim sonuç tam olrark şu;
| Sıra No |
Esame |
| 1 |
Hayriye |
| 2 |
Sabriye |
| 3 |
Şaziye |
| 4 |
Kadriye |
Ben isimleri tablodan çekebiliyorum ama buna sqlde sıra numarası koyamıyorum birtürlü.
El-Cevab : Değerli çekirge. Bu konudaki çabalarını taktirle karşılıyorum. Lakin bu işlemi başarabilmenin iki yolu var. Bu yollardan biri çok uzun ve meşakkatli. Diğer yol ise kısa pratik ve performanslı.
Ben tabiki sana ikinci yolu göstereceğim.
Veri çekmek istediğin tablonun isminin Talebeler olduğunu varsayıyorum. Vede tabloda bölümü fıkıh olan talebeleri çekelim ve bir kolondada satırlara index numarası koymak isteyelim.
Bu durumda bizim işimizi görecek iki anahtar sözcük var birincisi ROW_NUMBER() ikinciside OVER()
SELECT ROW_NUMBER() OVER(ORDER BY Esame) AS SıraNo,
Esame,
FROM Talebeler Where Bolum = 'Fıkıh'
bu sorgu tam olarak istediğin sonucu vericek sana. Sorgudanda görebileceğin gibi evvela over ile sıralanmış isimler üzerinden sıra numarası üretilip sıraNo kolonuna ekleniyor.
Umarım anlaşılmıştır.
Kaynak : www.eggheadcafe.com/forum