本帖最后由 tianxiaaiwojs 于 2011-11-25 13:40:11 编辑

解决方案 »

  1.   

    case..when 后面是不能用变量的 你可以用if..else判断。
      

  2.   

    CASE when后面的变量是可以的,这个已经成功过了,Then后面的出错的
      

  3.   

    你这样子的排序就用动态去解决吧!把前边的查询写到一个字符串 @sql 中给个排序的字符串变量 @order  用你上边的判断 
    select @order = (case when ... then 'aa desc,bb,cc' when ... then ... else ... end)然后 exec(@sql + ' order by ' + @order)
      

  4.   

    你这个需要使用判断语句,然后去执行.
    例如:
    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
       ....