Переменные допускаются только при упорядочении по выражению, ссылающемуся на имя столбца

Мы хотели бы использовать параметр для "Упорядочить по" этого запроса в Visual Studio DataSet Designer:

SELECT Students.ID, Students.Surname, Students.Forename, Students.DateOfBirth, Parents.MotherName, 
       Parents.FatherName, Parents.AddressLine1, Parents.AddressLine2, Parents.City, 
       Parents.State + '       ' AS State, Parents.Zip,
CASE 
   WHEN len(ltrim(rtrim(Parents.PrimaryPhone))) = '10' THEN 
      '(' + SUBSTRING(Parents.PrimaryPhone, 1, 3) + ')' + ' ' + 
            SUBSTRING(Parents.PrimaryPhone, 4, 3) + '-' + 
            SUBSTRING(Parents.PrimaryPhone, 7, 4)
   WHEN len(ltrim(rtrim(Parents.PrimaryPhone))) = '7' THEN 
      SUBSTRING(Parents.PrimaryPhone, 1, 3) + '-' + 
      SUBSTRING(Parents.PrimaryPhone, 4, 4)
   WHEN len(ltrim(rtrim(Parents.PrimaryPhone))) = '' THEN 
      ' ' 
END AS PrimaryPhone,
CASE 
   WHEN len(ltrim(rtrim(Parents.SecondaryPhone))) = '10' THEN 
      '(' + SUBSTRING(Parents.SecondaryPhone, 1, 3) + ')' + ' ' + 
            SUBSTRING(Parents.SecondaryPhone, 4, 3) + '-' + 
            SUBSTRING(Parents.SecondaryPhone, 7, 4)
   WHEN len(ltrim(rtrim(Parents.SecondaryPhone))) = '7' THEN 
      SUBSTRING(Parents.SecondaryPhone, 1, 3) + '-' + 
      SUBSTRING(Parents.SecondaryPhone, 4, 4)
   WHEN len(ltrim(rtrim(Parents.SecondaryPhone))) = '' THEN 
      ' ' 
END AS SecondaryPhone,
       Parents.HomeEmail
  FROM Parents INNER JOIN
       Students ON Parents.ID = Students.ParentID
 WHERE (Students.Forename LIKE '%' + @SearchValue + '%') OR
       (Students.Surname LIKE '%' + @SearchValue + '%') OR
       (@SearchValue = 'ALL')
ORDER BY @OrderByColumn

Эта ошибка отображается:

Variables are only allowed when ordering by an expression referencing 
a column name.

Нам нужна помощь в том, что описано в сообщении?

1 ответ

Решение

Попробуйте следующий запрос.....

СОРТИРОВАТЬ ПО

CASE WHEN @ OrderByColumn = 'Students.ID' THEN Students.ID END,

CASE WHEN @ OrderByColumn = 'Students.Sameame' THEN Students.Sameame END

Другие вопросы по тегам