SQL:将两个条件都一致的记录移动到顶部

SQL:将两个条件都一致的记录移动到顶部,sql,sql-server-2008,Sql,Sql Server 2008,有下表 CompanyID CompanyName 1 333 Name1 2 333 Name2 3 123 Name1 4 333 Name1 5 444 Name1 6 444 Name1 我需要所有拥有CompanyID=333或CompanyName=Name1的公司,如果我的公司同时同意所需的CompanyID(333)和CompanyName(Name1),我希望以这样的方式编

有下表

  CompanyID   CompanyName
1 333         Name1
2 333         Name2
3 123         Name1
4 333         Name1
5 444         Name1
6 444         Name1
我需要所有拥有
CompanyID
=
333
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
我怎样才能做到这一点?我正在使用SQLServer2008RD。
谢谢

这是一个按
订购的问题。您需要将双重匹配放在列表的顶部:

select *
from t
where CompanyId = 333 or CompanyName = 'Name1'
order by (case when companyId = 333 and CompanyName = 'Name1' then 1
               else 0
          end) desc

这是一个按
订购的问题。您需要将双重匹配放在列表的顶部:

select *
from t
where CompanyId = 333 or CompanyName = 'Name1'
order by (case when companyId = 333 and CompanyName = 'Name1' then 1
               else 0
          end) desc

其他人的顺序是什么?@christiandev其他人的顺序对我来说无关紧要其他人的顺序是什么?@christiandev其他人的顺序对meNice来说无关紧要!非常感谢:)太好了!非常感谢:)