Я пытаюсь использовать динамический порядок в хранимой процедуре, чтобы я мог передать порядок, в котором я хочу, чтобы данные возвращались в хранимую процедуру в качестве параметра. Это прекрасно работает для полей VARCHAR, однако, если я пытаюсь отсортировать поле типа int или datetime, оно выдает следующий код:
DECLARE @ORDERBY INT
SET @ORDERBY = 1
SELECT TOP 10 * FROM TBL_LMS_USERS_RECORDs_LAST_ATTEMPT
ORDER BY
CASE
WHEN @OrderBy = 1 THEN s10_record_dow
--WHEN @OrderBy = 2 THEN pk_big_record_id
else s10_record_dow
END
Если я раскомментирую второй WHEN в выражении case, он ошибается с
«Ошибка преобразования типа данных varchar в bigint.»
Я могу заказать по этому полю нормально, если я не использую оператор case.
Есть идеи?