SQL server de limit?

Web tabanlı uygulama geliştirme araçları(PHP, ASP vb...) ile ilgili konuları buraya yazabilirsiniz.
Cevapla
princeoftides
Üye
Mesajlar: 47
Kayıt: 17 Ara 2004 12:14

SQL server de limit?

Mesaj gönderen princeoftides » 23 Mar 2006 10:16

selam arkadaşlar bildiğimiz üzere mysql de sorgularımızı çekerken limitleyebiliyoruz. Örneğin :" SELECT * FROM deneme limit 1,2" gibi. MSSQL serverde bu olayı nasıl gerçekleştiririz? Yardımcı olursanız sevinirim.

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7472
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek » 23 Mar 2006 11:32

1. :ara Arama ile. Ararız ve pek çok kez konuşulduğunu görüp, 30 sn'de çözüme ulaşırız :)

2. TOP anahtar sözcüğü ile. Select TOP 10 * ....

Kolay gelsin.

drf1
Üye
Mesajlar: 9
Kayıt: 11 Tem 2010 09:34

Re: SQL server de limit?

Mesaj gönderen drf1 » 02 Şub 2016 10:49

TOP 5 , ilk 5 kaydı alır . Ama sorulan limit komutu . bunu nasıl gerçekleştiriyoruz.
4. kayıttan başlayıp 3 tane alsın nasıl deriz.

Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3014
Kayıt: 17 Nis 2006 07:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: SQL server de limit?

Mesaj gönderen sabanakman » 02 Şub 2016 03:18

Maalesef SQL Server üzerinde TOP ile baştan seçme dışında seçenek yok fakat RowNumber() fonksiyonu ile bu istediğinizi yapabilirsiniz. Tab i SQL Server 2000 bu fonksiyonu desteklememektedir.

Kod: Tümünü seç

select * from
  (select ROW_NUMBER() OVER (order by adi, kodu) as KayitNo , * from ListelenenTabloAdi) as tbl
where KayitNo between 4 and 6
Burada dikkat edilmesi gereken nokta OVER (order by adi, kodu) kısmı ile verilen sıralamaya göre sira numarası verilmektedir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .

gaus
Üye
Mesajlar: 227
Kayıt: 14 May 2014 06:36
İletişim:

Re: SQL server de limit?

Mesaj gönderen gaus » 13 Mar 2016 09:03

sabanakman yazdı:Maalesef SQL Server üzerinde TOP ile baştan seçme dışında seçenek yok fakat RowNumber() fonksiyonu ile bu istediğinizi yapabilirsiniz. Tab i SQL Server 2000 bu fonksiyonu desteklememektedir.

Kod: Tümünü seç

select * from
  (select ROW_NUMBER() OVER (order by adi, kodu) as KayitNo , * from ListelenenTabloAdi) as tbl
where KayitNo between 4 and 6
Burada dikkat edilmesi gereken nokta OVER (order by adi, kodu) kısmı ile verilen sıralamaya göre sira numarası verilmektedir.
TOP seçeneğini sadece baştan çekmek gibi bir kısıtlama söz konusu değildir.Koşullar,order vb. gibi işlemlerle istediğimiz yerdeki istediğimiz kadar satırı getirebiliriz

Kullanıcı avatarı
csunguray
Üye
Mesajlar: 846
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: SQL server de limit?

Mesaj gönderen csunguray » 14 Mar 2016 10:28

MS SQL Server da LIMIT deyimi yoktur. Bunun yerine arkadaşların açıkladığı gibi ROW_NUMBER ve iç içe SQL deyimleri kullanılarak benzer bir işlevsellik ele edilebilmektedir. ROW_NUMBER fonksiyonu SQL Server 2005 ve daha üzeri sürümlerde geçerlidir.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)

emrahgs
Üye
Mesajlar: 109
Kayıt: 08 Tem 2008 05:25
Konum: Antalya

Re: SQL server de limit?

Mesaj gönderen emrahgs » 06 Nis 2018 04:50

2012 ve üstünde OFSET geldi konunun üstünde baya zaman geçmiş ama
belki bir faydalanan olur

Cevapla