TSQL различен, а OrderBy и WHERE - PullRequest
1 голос
/ 26 октября 2011

У меня есть следующий пример оператора 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'. Я знаю, что синтаксис неверен, но я не уверен, как это должно быть отформатировано. Любая помощь приветствуется.

UPDATE:

Моя ошибка, я имел в виду начало даты и времени должно быть дополнено датой и временем. Исправлен синтаксис.

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.

Ответы [ 2 ]

10 голосов
/ 26 октября 2011

ГДЕ должно прийти до ЗАКАЗА.Кроме того, вы не сможете выполнить сортировку по DateTimeStart, если она не включена в инструкцию SELECT.

2 голосов
/ 26 октября 2011
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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...