SORU
19 AĞUSTOS 2008, Salı


Nasıl bir SQL veritabanı tablo N. satırı seçmek için?

Bir veritabanı tablosundan *n*inci satır seçme (ideal) bazı veritabanı agnostik yollarını öğrenme ilgileniyorum. Ayrıca bu elde edilebilir nasıl yerli aşağıdaki veritabanlarını işlevselliğini kullanarak görmek ilginç olurdu:

  • SQL Server
  • MySQL
  • PostgreSQL
  • SQLite
  • Oracle

Şu anda 2005, ama başka bir şey daha agnostik görmeye ilgi duyarım SQL Server yaklaşımlar: aşağıdaki gibi bir şey yapıyorum

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000

SQL için yukarıdaki kredi: Firoz Ansari's Weblog

Güncelleme:SQL standart hakkında Troels Arvin's answer bkz.Alıntı yapabileceğimiz herhangi bir bağlantıları var mı Troels?

CEVAP
19 AĞUSTOS 2008, Salı


Standart parçalar isteğe bağlı olarak bunu yapmanın birçok yolu vardır, ama bir çok veritabanı bunu kendi yöntemleriyle destek.

Bu ve diğer şeyler hakkında konuşuyor gerçekten çok iyi bir site http://troels.arvin.dk/db/rdbms/#select-limit.

Temelde, PostgreSQL ve MySQL standart dışı destekler:

SELECT...
LIMIT y OFFSET x 

DB2 Oracle ve MSSQL fonksiyonları pencere: standart destekler

SELECT * FROM (
  SELECT
    ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber,
    columns
  FROM tablename
) AS foo
WHERE rownumber <= n

ben sadece siteye bir daha asla o DBs kullandığından yukarıda bağlantılı kopyalanmış olan)

Güncelleme:PostgreSQL 8.4 olarak standart bir pencere fonksiyonları desteklenir, PostgreSQL için de çalışmak için ikinci örnek bekliyoruz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • J Medema

    J Medema

    11 EKİM 2006
  • NightShader1

    NightShader1

    25 Temmuz 2006
  • tunez4you

    tunez4you

    20 EKİM 2008