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
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.
Nasıl bir mysql veritabanı tablo boyut...
Nasıl slideDown (veya göstermek) Kulla...
Nasıl bir veritabanı veya bir tablo iç...
Nasıl bir tablo var olan bir tablodaki...
Nasıl hizalamak için merkezi bir html ...