【发布时间】:2014-06-10 00:56:58
【问题描述】:
伙计们,我正在尝试显示表格中的所有记录,但前 3 条最新记录除外。我试过 WHERE NOT EXISTS 但我似乎无法让它工作。帮助将不胜感激。
EDITED:
查询:
SELECT [Subject],
IssueDate,
(SELECT d.DepartName
FROM dbo.Department d
WHERE d.DepartmentID = n.DepartmentID) AS 'Department',
Body,
NoticeImage,
Icon
FROM dbo.Notice n
WHERE NOT EXISTS ( SELECT TOP(3) [Subject],
IssueDate,
(SELECT d.DepartName
FROM dbo.Department d
WHERE d.DepartmentID = n.DepartmentID) AS 'Department',
Body,
NoticeImage,
Icon
FROM dbo.Notice n
ORDER BY IssueDate DESC)
ORDER BY IssueDate DESC
它确实被执行了,但是即使 db 中有数据,返回的行也是 0。如果这很重要,数据库中没有空值。
【问题讨论】:
-
首先,ORDER 子句应始终位于 WHERE 子句之后。看看如果你删除 ORDER BY 会发生什么,然后看看如果你把它移到最后一行会发生什么。
-
抱歉,请参阅我编辑的问题。
-
好的。你能解释一下你想找到什么吗?比如,“通知,以及他们各自的部门,不包括公司前 3 名的通知”。
-
是的,我已经在一个页面上显示了最新的 3 个通知(基于 IssueDate),我需要这个存储过程来返回除这 3 个之外的所有通知...