有下表
CompanyID CompanyName
1 333 Name1
2 333 Name2
3 123 Name1
4 333 Name1
5 444 Name1
6 444 Name1我需要拥有CompanyID = 333 OR CompanyName= Name1的所有公司,并且我想以这样的方式编写查询,如果我的公司同时就必需的CompanyID(333)和CompanyName(Name1)达成一致,那么它们应该像这样位于结果表的顶部。但其他订购可能不需要:
CompanyID CompanyName
1 333 Name1
2 333 Name1
3 333 Name2
4 123 Name1
5 444 Name1
6 444 Name1我怎样才能做到这一点?我正在使用Server 2008RD。谢谢!
发布于 2013-09-09 14:27:51
这是一个order by问题。你需要把这两场比赛放在第一名:
select *
from t
where CompanyId = 333 or CompanyName = 'Name1'
order by (case when companyId = 333 and CompanyName = 'Name1' then 1
else 0
end) deschttps://stackoverflow.com/questions/18700508
复制相似问题