你这样子的排序就用动态去解决吧!把前边的查询写到一个字符串 @sql 中给个排序的字符串变量 @order 用你上边的判断 select @order = (case when ... then 'aa desc,bb,cc' when ... then ... else ... end)然后 exec(@sql + ' order by ' + @order)
你这个需要使用判断语句,然后去执行. 例如: if @P_SORTEXPRESSION = 'COURSE_DESC' select .... from ... order by OURSE_DESC,T.USER_GRADE,T.USER_GRADE_LEVEL,T.DIFFICULTY_LEVEL else if @P_SORTEXPRESSION = 'COURSE_DESC DESC' select .... from ... order by OURSE_DESC DESC, T.USER_GRADE,T.USER_GRADE_LEVEL,T.DIFFICULTY_LEVEL ....
select @order = (case when ... then 'aa desc,bb,cc' when ... then ... else ... end)然后 exec(@sql + ' order by ' + @order)
例如:
if @P_SORTEXPRESSION = 'COURSE_DESC'
select .... from ... order by OURSE_DESC,T.USER_GRADE,T.USER_GRADE_LEVEL,T.DIFFICULTY_LEVEL
else
if @P_SORTEXPRESSION = 'COURSE_DESC DESC'
select .... from ... order by OURSE_DESC DESC, T.USER_GRADE,T.USER_GRADE_LEVEL,T.DIFFICULTY_LEVEL
....