关于SQL case的问题
时间:2011-11-25
来源:互联网
先上图:
SQL code
相信大家都看懂我想干嘛了,对,排序,但是这个Case Then后面是不是只能跟一个值?那要想实现我想要的这种结果该如何操作?!
SQL code
ORDER BY CASE when @P_SORTEXPRESSION = 'COURSE_DESC' THEN COURSE_DESC,T.USER_GRADE, T.USER_GRADE_LEVEL, T.DIFFICULTY_LEVEL end, CASE when @P_SORTEXPRESSION = 'COURSE_DESC DESC' THEN COURSE_DESC DESC, T.USER_GRADE, T.USER_GRADE_LEVEL, T.DIFFICULTY_LEVEL END, CASE WHEN @P_SORTEXPRESSION = 'USER_GRADE' THEN USER_GRADE, T.COURSE_DESC, T.USER_GRADE_LEVEL, T.DIFFICULTY_LEVEL END, CASE WHEN @P_SORTEXPRESSION = 'USER_GRADE DESC' THEN USER_GRADE DESC, T.COURSE_DESC, T.USER_GRADE_LEVEL, T.DIFFICULTY_LEVEL END, CASE WHEN @P_SORTEXPRESSION = 'USER_GRADE_LEVEL' THEN USER_GRADE_LEVEL, T.COURSE_DESC, T.USER_GRADE, T.DIFFICULTY_LEVEL END, CASE WHEN @P_SORTEXPRESSION = 'USER_GRADE_LEVEL DESC' THEN USER_GRADE_LEVEL DESC, T.COURSE_DESC, T.USER_GRADE, T.DIFFICULTY_LEVEL END
相信大家都看懂我想干嘛了,对,排序,但是这个Case Then后面是不是只能跟一个值?那要想实现我想要的这种结果该如何操作?!
作者: tianxiaaiwojs 发布时间: 2011-11-25
求教,哪位大神帮帮忙
作者: tianxiaaiwojs 发布时间: 2011-11-25
case..when 后面是不能用变量的
你可以用if..else判断。
你可以用if..else判断。
作者: fredrickhu 发布时间: 2011-11-25
引用 2 楼 fredrickhu 的回复:
case..when 后面是不能用变量的
你可以用if..else判断。
case..when 后面是不能用变量的
你可以用if..else判断。
CASE when后面的变量是可以的,这个已经成功过了,Then后面的出错的
作者: tianxiaaiwojs 发布时间: 2011-11-25
你这样子的排序就用动态去解决吧!
把前边的查询写到一个字符串 @sql 中
给个排序的字符串变量 @order 用你上边的判断
select @order = (case when ... then 'aa desc,bb,cc' when ... then ... else ... end)
然后 exec(@sql + ' order by ' + @order)
把前边的查询写到一个字符串 @sql 中
给个排序的字符串变量 @order 用你上边的判断
select @order = (case when ... then 'aa desc,bb,cc' when ... then ... else ... end)
然后 exec(@sql + ' order by ' + @order)
作者: AcHerat 发布时间: 2011-11-25
你这个需要使用判断语句,然后去执行.
例如:
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
....
例如:
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
....
作者: dawugui 发布时间: 2011-11-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28