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 »

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: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

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 10:34

Re: SQL server de limit?

Mesaj gönderen drf1 »

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: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: SQL server de limit?

Mesaj gönderen sabanakman »

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 07:36
İletişim:

Re: SQL server de limit?

Mesaj gönderen gaus »

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: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: SQL server de limit?

Mesaj gönderen csunguray »

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: 110
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: SQL server de limit?

Mesaj gönderen emrahgs »

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