给定sql server查询的等效续订操作

时间:2016-05-19 07:14:50

标签: node.js database orm sequelize.js

SELECT *
FROM (SELECT *, ROW_NUMBER() OVER ( ORDER BY No_ ) AS RowNum
      FROM Item) DerivedTable
WHERE RowNum >= 501 AND RowNum <= 501 + ( 5 - 1 );

我认为较旧的sql server版本不支持FETCH ROWS和NEXT ROWS,相当于mysql中的OFFSET和LIMIT,上述查询似乎是应用该逻辑的唯一方法。

sequelize如何实现上述查询,该查询创建一个虚拟表“DerivedTable”,其中包含WHERE子句中使用的“RowNum”列。

在sequelize中是否有其他方法可以执行此操作,可能包括原始查询或其他任何内容?

1 个答案:

答案 0 :(得分:0)

在这个问题上,你似乎并不孤单。使用SQL Server 2012,您可以使用:

grunt serve

但是,由于您使用的是早期版本,因此您似乎不得不亲自编写查询。

这样的事情:

Model
  .findAndCountAll({
     where: {
        title: {
          $like: 'foo%'
        }
     },
     offset: 10,
     limit: 2
  })
  .then(function(result) {
    console.log(result.count);
    console.log(result.rows);
  });

请参阅thisthis