Arama butonu
Bu konudaki kullanıcılar: 1 misafir
10
Cevap
550
Tıklama
0
Öne Çıkarma
Veri Sıralaması Hakkında Basit Soru
G
8 yıl
Teğmen
Konu Sahibi

merhaba, sql de yeniyim projem için merak edip araştırıp bulamadığım bir problemim var.
normalde bir sütuna identity ataması yaparsak veriler sayılı sıraya giriyor fakat verilerin içinden orta kısımdan bir veri çıkardığımızda sıra sayısı kaymıyor hatta yeni bir veri eklediğimizde toplam veri sayısı 10 sa diyelim yine üste sayıyor 11 oluyor. bu sıra kaydırma işlemi için ne yapmam gerekiyor? teşekkürler.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



H
8 yıl
Yüzbaşı

identity otomatik artan sayıyı sistem kendisi takip eder. Onun sıralı yada sırasız olmasına takılmayın. O sayı kayıtları benzersiz yapmak içindir. İlla listelerken sıralı sayı numarası görmek isterseniz SQL ile listelerken geçici sıra numarası verebilirsiniz.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
G
8 yıl
Teğmen
Konu Sahibi

yaptığım bir program için mecbur böyle bir özelliğin olması lazım. düşünün ki bir öğrenci listesi var sınıfın mevcudu listenin son elemanının sırası olacak, öğrenci çıkarılacak eklenecek vs. o son satır toplam öğrenci mevcudunu gösterecek, illa böyle bir özellik vardır sql de diye düşünüyorum




Bu mesajda bahsedilenler: @hyrgul
G
8 yıl
Yarbay

iyide sınıf mevcudu niye satır nosu olsun o tabloda kaç kayıt varsa o kadar öğrenci vardır count fonksiyonuyla onu sayarsın işini görür


Bu mesaja 1 cevap geldi.
G
8 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: Gökşen PASLI

iyide sınıf mevcudu niye satır nosu olsun o tabloda kaç kayıt varsa o kadar öğrenci vardır count fonksiyonuyla onu sayarsın işini görür

ama öğrenci listeside yapmıyorum :) demek istediğim SQL DE NE KADAR VERİ VARSA ARİTMETİK ŞEKİLDE SIRALI OLMASI . vallahi tek istediğim buydu.



G
8 yıl
Yarbay

G
8 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: Gökşen PASLI

liste yapmıyorumu anlamadım
https://docs.microsoft.com/en-us/sql/t-sql/functions/row-number-transact-sql

bak herhalde işine yarar


baktım hocam fazla anlayamadım ama muhtemelen benimkine çözüm değil , kısaca izah edeyim tekrardan

1-ali
2-mehmet
3-hasan

ben bunlara hakan ismini eklersem
1-ali
2-mehmet
3-hasan
4-hakan

oluyor...hasan ı silersem

1-ali
2-mehmet
4-hakan

oluyor...işte burada bahsettiğim hakan'ın 4 değilde 3 olması


Bu mesaja 1 cevap geldi.
G
8 yıl
Yarbay

tamam sen 1 2 diye sütün hiç ekleme zaten sorguda yeni sütün açıp orda göster linktede onu anlatmış öteki türlü sütunu update etmekle uğraşırsın



A
8 yıl
Yarbay

E tamam işte Gökşen hoca onu söylüyor. COUNT fonksiyonunu kullanacaksın tablodaki eleman sayısını verecek. Öğrenci silsen de eklesen de mevcut sayıyı bulacaksın. Senin ID kolonuyla işin yok. ID kolonu veri silip update etmek için lazım sadece.
Söylediğin şekilde de linkte yazmış adamlar:

quote:

SELECT ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS Row,
FirstName, LastName, ROUND(SalesYTD,2,1) AS "Sales YTD"
FROM Sales.vSalesPerson
WHERE TerritoryName IS NOT NULL AND SalesYTD <> 0;


Sen bu sorgudaki kalın kısma göre SalesYTD yerine senin ID kolonunun ismini ver. DESC yerine de ASC yaz.





< Bu mesaj bu kişi tarafından değiştirildi alpmirza -- 29 Haziran 2017; 22:25:4 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @game8181
G
8 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: alpmirza

E tamam işte Gökşen hoca onu söylüyor. COUNT fonksiyonunu kullanacaksın tablodaki eleman sayısını verecek. Öğrenci silsen de eklesen de mevcut sayıyı bulacaksın. Senin ID kolonuyla işin yok. ID kolonu veri silip update etmek için lazım sadece.
Söylediğin şekilde de linkte yazmış adamlar:

quote:

SELECT ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS Row,
FirstName, LastName, ROUND(SalesYTD,2,1) AS "Sales YTD"
FROM Sales.vSalesPerson
WHERE TerritoryName IS NOT NULL AND SalesYTD <> 0;


Sen bu sorgudaki kalın kısma göre SalesYTD yerine senin ID kolonunun ismini ver. DESC yerine de ASC yaz.

yok hocam :D sıkıntımı anlatamadım ben, sql komutu da değil aradığım, aradığım şey tıpkı bir kolona identity atamak gibi bir şey, c# tan veri atıp alacağım bu veri atmayı ve almayı id lere göre yapacağım o yüzden id leri sıralı olması lazım eminim sql de böyle bir özellik var ama ne bulabiliyorum ne anlatabiliyorum :)



T
8 yıl
Yüzbaşı

Identity kaldirip bu alana veriyi manuel atamaniz gerekecek, id alanindaki en son sayiyi sorgulayip - bunu desc ile kolondaki son kayiti alarak veya en buyuk rakami bularak yapabilirsiniz-cikan sonuca +1 seklinde deger atayip o alana manuel olarak id gireceksiniz sorgularla. Bu teferruatli bir durum ama bu sekilde yapabilirsiniz. Ekleme alaninda bu sekilde. Ve yine kayit sildiginizde de gerekecek sorgular olabilir.





< Bu mesaj bu kişi tarafından değiştirildi turk66 -- 26 Temmuz 2017; 2:1:47 >

< Bu ileti mobil sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.