【问题标题】:SQL orderby / case issue: orderdirection failSQL order by/case 问题:订单方向失败
【发布时间】:2011-02-12 01:53:36
【问题描述】:

我有一个传递学生表的存储过程,它需要按姓氏、姓名等排序...它还需要根据参数@orderby 进行升序、降序排序...

代码:

订购方式
案子
 当@orderby = 'studentkey' THEN Studentkey END ASC,
案子
 WHEN @orderby = 'studentkey' 和 @desc = 1 THEN Studentkey END DESC,
案子
 WHEN @orderby = 'initials' THEN Initials END ASC,
案子
 WHEN @orderby = 'initials' and @desc = 1 THEN Initials END DESC,
案子
 WHEN @orderby = 'firstname' THEN Firstname END ASC,
案子
 WHEN @orderby = 'firstname' 和 @desc = 1 THEN Firstname END DESC,
案子
 WHEN @orderby = 'nickname' THEN 昵称 END ASC,
案子
 WHEN @orderby = 'nickname' 和 @desc = 1 THEN 昵称 END DESC,
案子
 WHEN @orderby = 'insertion' THEN 插入 END ASC,
案子
 WHEN @orderby = 'insertion' 和 @desc = 1 THEN 插入 END DESC,
案子
 WHEN @orderby = 'surname' THEN Surname END ASC,
案子
 WHEN @orderby = 'surname' 和 @desc = 1 THEN Surname END DESC
内德

@desc = 1 和@desc = 0 之间的输出存在差异,但不是我想要的...

有人有解决办法吗?

【问题讨论】:

  • 是的 :) 一点挫败感...

标签: sql-server-2008 case sql-order-by


【解决方案1】:

试试这个:

CASE 
 WHEN @orderby = 'studentkey' and @desc = 0 THEN Studentkey END ASC,
CASE 
 WHEN @orderby = 'studentkey' and @desc = 1 THEN Studentkey END DESC,
...

【讨论】:

  • 谢谢!我忽略了那个,但事情的运作方式仍然很奇怪
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
  • 2019-03-27
  • 2012-12-11
  • 1970-01-01
  • 2010-12-05
相关资源
最近更新 更多