2016-12-03 76 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已在查询中定义... –