У меня есть хранимая процедура, которая будет принимать 2 разных параметра. Первый параметр определяет, какой столбец я хочу, чтобы отсортировать дальше, второй параметр будет определять, является ли он ASC
или DESC
SQL-код с двумя условиями
Create Procedure Some_SP
@sortcolumn varchar(10)
@sortorder varchar(10)
AS
Select * from empTable
Order by
CASE @sortcolumn WHEN 'First_Name' THEN fname END,
CASE @sortcolumn WHEN 'Last_Name' THEN lname END,
CASE @sortcolumn WHEN 'ID' THEN empID END,
CASE @sortorder WHEN 'ascending' THEN ASC END,
CASE @sortorder WHEN 'descending' THEN DESC END
Это дает мне синтаксическую ошибку. Как я могу исправить это, чтобы у меня могло быть 2 условия в моем заявлении CASE?
Я бы сделал это с динамическим SQL я думаю ... –
@TonyHopkinson я не был 't разрешено использовать динамический SQL, это часть нашего контрактного соглашения с клиентом. –
Невозможно понять, почему в этом случае неправильные аргументы, SP будет падать на его задницу в любом случае. –