首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >T-SQL对返回顶部的特定项进行分组

T-SQL对返回顶部的特定项进行分组
EN

Stack Overflow用户
提问于 2011-10-18 23:43:33
回答 3查看 77关注 0票数 1

我从一个数据库中拉出一个雇员列表,他们每个人都有一个办公室ID,我想按办公室ID排序,但希望用户当前的办公室出现在列表的顶部,其余的按升序出现在下面。

代码语言:javascript
复制
Example:

Name  Office
Mike    1
Alex    2
John    6
Steve   2
Sarah   3

If my office is office 2, I want those to appear at the top like so

Name  Office
Alex    2
Steve   2
Mike    1
Sarah   3
John    6

有没有办法在某种类型的子句中做到这一点,或者我必须创建一个临时表,只对特定的办公室ID进行第一次搜索,然后将其余的添加到与该ID不同的表中。我觉得这是一个完全的黑客行为,如果不需要的话,我宁愿不这么做。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-18 23:49:06

您可以在order by中使用case,因此可以更改位置:

代码语言:javascript
复制
select * 
from table
order by 
case when Office = 2 then 0 else Office end

当然,您可以在上面的代码中参数化2

票数 4
EN

Stack Overflow用户

发布于 2011-10-18 23:45:58

代码语言:javascript
复制
select *
from yourTable
where OfficeId = 2
union all
select *
from yourTable
where OfficeId <> 2
票数 0
EN

Stack Overflow用户

发布于 2011-10-18 23:49:36

代码语言:javascript
复制
select *
from yourTable
ORDER BY CASE
       WHEN OfficeID = 2 THEN 0
       ELSE 1
  END
, OfficeID
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7809971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档