我是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";
答案 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
...