sql de belirli kayit araligini listelemek
sql de belirli kayit araligini listelemek
]Herkese merhaba arkadaşlar. Ben SQL de bir tabloyu 200 kayit 200 kayıt çağırmak istiyorum. Yanı ilk sayfaya ilk 200 kayıt sonraki sayfaya da 201 ile 400 arası kayıtları çağırmak istiyorum. Bu konuda yardımlarınıza ihtiyacım bulunmakta. SQL 2008 sürümü kullanmaktayim.
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
Re: sql de belirli kayit araligini listelemek
Select top 200 ile almayı biliyorsundur.
Select'in where kısmına bir sub select ile aynı selecti verip "not in" şartına bağlarsan ilk 200 pass geçilip ikinci 200 gelir.
Tabi subselect kısmında top ifadesi bir sayfa eksik olacağından sayfa içerik sayısı olan 200 eksilteceksin
Select'in where kısmına bir sub select ile aynı selecti verip "not in" şartına bağlarsan ilk 200 pass geçilip ikinci 200 gelir.
Tabi subselect kısmında top ifadesi bir sayfa eksik olacağından sayfa içerik sayısı olan 200 eksilteceksin
Re: sql de belirli kayit araligini listelemek
Muharrem hocam rica etsem küçük bir ornek kod verebilir misiniz?
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
Re: sql de belirli kayit araligini listelemek
Kod: Tümünü seç
SQL.Add('SELECT Count(*) AS KayitSay FROM Tablo');
Kod: Tümünü seç
ComboBox1.Items.Text := '<Sayfa seçiniz...>';
for i := 1 to FieldByName( 'KayitSay' ).AsInteger div 10
do ComboBox1.Items.Add(Format( 'Sayfa %.2d', [i]) );
ComboBox OnChange olayında hangi sayfa istediğini anlar :
Kod: Tümünü seç
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.ItemIndex > 0 then
With AdoQuery1 do
begin
Active := False;
SQL.Clear;
SQL.Add('SELECT TOP 10 * FROM Tablo');
if ComboBox1.ItemIndex > 1 then // ilk sayfadan sonrakileri filtreleyeceğiz...
SQL.Add('WHERE KaySiraNo NOT IN ( SELECT TOP '+ IntToStr(ComboBox1.ItemIndex * 10) +' KaySiraNo FROM Tablo )');
Active := True;
end;
end;
Re: sql de belirli kayit araligini listelemek
muharrem hocam yardımınız için teşekkür ederim aşağıdaki şekilde sorunumu çözmüş bulunmaktayım. çok sağolun. benim gibi ihtiyacı olan arkadaşlar bu kodlardan faydalanabilirler.
Kod: Tümünü seç
WITH Yeni_Tablo AS
(
SELECT IdUrun, UrunAdi,Barkod,
ROW_NUMBER() OVER (ORDER BY Idurun ASC) AS kayit
FROM Urun
)
SELECT IdUrun,UrunAdi,Barkod,kayit
FROM Yeni_Tablo
WHERE kayit BETWEEN 201 AND 400
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.