Я пытаюсь написать хранимую процедуру, которая возвращает список объектов с порядком сортировки и направлением сортировки, выбранным пользователем, и передается как параметры sql.
Предположим, что у меня есть таблица продуктов со следующими столбцами: product_id (int), name (varchar), value (int), created_date (datetime) и параметры @sortDir и @sortOrder
Я хочу сделать что-то вроде
select *
from Product
if (@sortOrder = 'name' and @sortDir = 'asc')
then order by name asc
if (@sortOrder = 'created_date' and @sortDir = 'asc')
then order by created_date asc
if (@sortOrder = 'name' and @sortDir = 'desc')
then order by name desc
if (@sortOrder = 'created_date' and @sortDir = 'desc')
then order by created_date desc
Я попытался сделать это с аргументами case, но возникли проблемы, так как типы данных были разными. У кого-нибудь есть предложения?