2016-12-03 75 views
0

我是SQL Server 2008 R2新手,遇到以下情況。 我想加入兩個表使用內部連接和addi限制和偏移相同。內部連接設置限制和偏移量

由於MySQL的語法與SQL Server的語法不同,我無法得到結果。我用this鏈接,但它並沒有以任何方式幫助我。 任何幫助,將不勝感激。謝謝!

+0

的SQL Server 2008 R2中沒有內置的選項限制和抵消,這是在2012年版本中引入的「偏移...取下「。如果您要編輯您的問題以包含相關表格DDL,一些示例數據(可能爲DML)以及期望的結果,那將會更容易幫助您。 –

+0

這裏的頂部答案是否回答你的問題? http://stackoverflow.com/questions/2135418/equivalent-of-limit-and-offset-for-sql-server – mendosi

+0

@mendosi top對於單表非常適用,但未能創建表的內連接查詢。 ... –

回答

2

您可以使用此查詢:

SET ROWCOUNT x -- x is Rows Count to get For Example : 50 
SELECT t.* 
FROM (
     SELECT row_number() over (ORDER BY a.id) AS rowindex, a.* 
     FROM table_1 a INNER JOIN table_2 b ON a.id = b.aid 
     WHERE -- limit conditions For Example : A.title = 'name2' 
    ) AS t 
WHERE t.rowindex >= y -- Y is Start index for Offset 

好運

+0

@ TT/@ Mehdi Moshiri感謝您的回覆。在嘗試之前我想知道,上述查詢中的't'是什麼? –

+0

@RonakRathod在這種情況下,它是一個表別名,用於from子句中的派生表。如果要引用該派生表中的列,可以通過使用表別名來限定它。在答案中的陳述中,每列都由't。*'選擇; '*'表示所有列,'t.'表示由't'別名的派生表。 –

+0

@TT。在我的SQL服務器中,我收到一個錯誤是「列前綴't'與查詢中使用的表名或別名不匹配」。我們能修復這個嗎?因爲我也看不到別名t已在查詢中定義... –