Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите понять ошибку  [new]
user87
Member

Откуда:
Сообщений: 257
Добрый вечере

Есть запрос, привожу его кусок

SELECT Currency,row_number() over(order by ord.CreateDate + case when @SortDirection = 'ASC' THEN 'ASC' ELSE 'DESC' END) AS [RN].....

Это входной параметр @SortDirection

Компилится процедура без ошибок, но когда запускаю процедуру пишет такую ошибку, хотя я добавляю только desc или asc

Conversion failed when converting date and/or time from character string.

В динамике мог бы собрать данный запрос, но из-за одной сортировки делать это как-то не хочется, подскажите, может есть возможность обойти данную ошибку?
25 сен 14, 18:44    [16622717]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять ошибку  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
user87,

SELECT Currency,row_number() over(order by 
case when @SortDirection = 'ASK' then ord.CreateDate end asc
, case when @SortDirection = 'DESC' then ord.CreateDate end desc) AS [RN]
25 сен 14, 18:51    [16622742]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять ошибку  [new]
user87
Member

Откуда:
Сообщений: 257
Спасибо большое
25 сен 14, 20:53    [16623046]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять ошибку  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
Я бы рекомендовал вот так

SELECT Currency,
CASE 
when @SortDirection = 'ASC' then row_number() over(order by ord.CreateDate ASC) 
when @SortDirection = 'DESC' then row_number() over(order by ord.CreateDate DESC)
END
AS [RN]
26 сен 14, 13:01    [16625419]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить