0
我有一个下面给出的存储过程,我必须动态地对结果进行排序,但它给出了语法错误。请告诉我正确的方式做到这一点按条款排序的多个case表达式SQL Server
SELECT *
FROM [TableName]
ORDER BY CASE @OrderBy
WHEN 'DESC'
THEN CASE @Sort
WHEN 'CreatedOn'
THEN CreatedOn
WHEN 'EmployeeName'
THEN EmployeeName
WHEN 'EmployeeCode'
THEN EmployeeCode
WHEN 'Country'
THEN Country
WHEN 'Location'
THEN Location
WHEN 'Skill'
THEN Skill
WHEN 'ProcessName'
THEN ProcessName
WHEN 'RoleName'
THEN RoleName
WHEN 'JoiningDate'
THEN JoiningDate
ELSE CreatedOn
END DESC
ELSE CASE @Sort
WHEN 'CreatedOn'
THEN CreatedOn
WHEN 'EmployeeName'
THEN EmployeeName
WHEN 'EmployeeCode'
THEN EmployeeCode
WHEN 'Country'
THEN Country
WHEN 'Location'
THEN Location
WHEN 'Skill'
THEN Skill
WHEN 'ProcessName'
THEN ProcessName
WHEN 'RoleName'
THEN RoleName
WHEN 'JoiningDate'
THEN JoiningDate
ELSE CreatedOn
END ASC
END
表达式,而不是case语句... – jarlh
@jarlh correct。更正了问题 – VIVEK
如果您发布尝试执行查询时遇到的语法错误,将会有所帮助。 – fez