2015-08-08 66 views
0

我從特定的SQL表達式獲取特定數量的結果時遇到問題。有人可以幫助我限制我得到這個表達式的正確方法:從SQL表達式獲取特定數量結果的解決方案

SELECT 
    bill.bill_id, bill.total_price, bill.sell_time, 
    bill.user_id, login.username AS Expr1 
FROM 
    bill 
INNER JOIN 
    login ON bill.user_id = login.user_id; 

謝謝。

+1

根據您使用的數據庫,添加'取首先行','限制',或'TOP '。 –

+0

這確實取決於你正在使用的rdbms。對於access/ms sql,它是'select top n'。對於mysql,它是'select ..... limit n' –

+0

我正在使用microsoft sql server。我能寫出這種表達方式的最佳方式是什麼? –

回答

0

如果您使用的是Oracle,

嘗試

Select * 
from 
    (SELECT 
     rownum rn, bill.bill_id, bill.total_price, bill.sell_time, 
     bill.user_id, login.username AS Expr1 
    FROM bill 
    INNER JOIN login ON bill.user_id = login.user_id) 
Where rn <= 100; 

它會得到第一個100行

對於SQL Server

SELECT * FROM (SELECT bill.bill_id, bill.total_price, bill.sell_time, bill.user_id, login.username AS Expr1 ,ROW_NUMBER() OVER (ORDER BY bill.bill_id) as rn FROM bill INNER JOIN login ON bill.user_id = login.user_id) 
Where rn <= 100; 

如果您有SQL Server的12

SELECT bill.bill_id, bill.total_price, bill.sell_time, bill.user_id, login.username AS Expr1 FROM bill INNER JOIN login ON bill.user_id =login.user_id ORDER BY bill.bill_id OFFSET 100 ROWS FETCH NEXT 100 ROWS ONLY 
+0

我嘗試這個,但它不起作用!我之前沒有提到,但我在vb.net上使用它與微軟的SQL服務器 –

+0

請嘗試查詢給予SQL服務器 –

+0

爲什麼不只是「選擇TOP 100 ...」? – Alexey

相關問題