有下表
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
我怎样才能做到这一点?我正在使用SQL Server 2008 RD。 谢谢!
答案 0 :(得分:5)
这是一个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) desc