限制顶行

时间:2014-01-29 02:06:56

标签: php sql sql-server

我是Stackoverflow的新手,我对MSSQL也很陌生(我已经使用MYSQL几年了),我想知道是否有人可以帮我查询我是遇到麻烦? 我为一个我正在整理的网站创建了一个故事存档页面,它运行正常,但唯一的问题是我想存档除了表格中前6个故事之外的所有内容。

我遇到了一段代码,它会忽略前几个结果(在我的情况下为6),但我对如何将它合并到我的查询中感到有点困惑。 我已经尝试了一些东西,但我不断收到错误消息 - 我想我已经偏离轨道了。 任何人都可以给我的任何帮助将非常感谢!

非常感谢您提前:))

这是我发现的查询:

SELECT *
FROM PageContent 
WHERE id NOT IN (
         SELECT TOP 6 id 
         FROM PageContent 
         ORDER BY date)

这是我的疑问:

SELECT * 
FROM (
  SELECT *, ROW_NUMBER() OVER (ORDER by PageId desc) AS RowNum
  FROM PageContent WHERE pagestory_type = 'latest_news'
) AS MyDerivedTable
WHERE MyDerivedTable.RowNum BETWEEN $qpage_srt and $qpage_fin ORDER by date desc";

3 个答案:

答案 0 :(得分:1)

如果您有SQL Server 2012,可以尝试:

SELECT *
FROM PageContent 
ORDER BY [date] 
OFFSET 6 ROWS

答案 1 :(得分:1)

为什么不能直接使用TOP子句从您需要的列所订的表中选择?与您找到的样本类似。

SELECT TOP X * -- add fields as needed 
FROM   PageContent 
WHERE  pagestory_type = 'latest_news'
ORDER  BY PageId DESC

答案 2 :(得分:0)

除了参数变量

之外,我发现你的查询没有任何区别

$qpage_srt and $qpage_fin

在Ms sql中应该是@qpage_srt and @qpage_fin ...