我有以下SQL语句示例:
SELECT DISTINCT [CommentNdx]
,[CommentsText]
,[DateTimeAdded]
FROM [dbo].[CommentTable]
ORDER BY [dbo].[CommentTable].DateTimeStart DESC
WHERE [CommentsText] = 'Hello World'
我一直收到错误Incorrect syntax near the keyword 'WHERE'.
我知道语法不正确但我不确定应该如何格式化。任何帮助表示赞赏。
更新:
我的错误,我的意思是日期时间开始应该是datetimeadded。修正了语法。
SELECT DISTINCT [TestCommentNdx]
,[TestID]
,[CommentsText]
,[DateTimeAdded]
,[OperatorNdx]
FROM [PTDB].[dbo].[TestsComments]
WHERE [TestID] = 1174411854
ORDER BY [PTDB].[dbo].[TestsComments].[DateTimeAdded] DESC
更新2:
非常感谢大家,最后一件事,如果select语句中有连接会有什么不同吗?我有一个很长的查询连接,当我尝试使用DISTINCT时,我得到ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
答案 0 :(得分:10)
WHERE需要在ORDER BY之前。此外,除非它包含在SELECT语句中,否则您将无法按DateTimeStart排序。
答案 1 :(得分:2)
SELECT DISTINCT [CommentNdx]
,[CommentsText]
,[DateTimeAdded]
FROM [dbo].[CommentTable]
WHERE [CommentsText] = 'Hello World'
ORDER BY [dbo].[CommentTable].DateTimeStart DESC -- you can't do this
ORDER BY
遵循WHERE
子句。
编辑:根据@LukeGirvin的帖子,您不能按照SELECT
子句中未包含的列进行排序。