Ant*_*lev 1 sql sql-server-2008
有下表
CompanyID CompanyName
1 333 Name1
2 333 Name2
3 123 Name1
4 333 Name1
5 444 Name1
6 444 Name1
Run Code Online (Sandbox Code Playgroud)
我需要所有公司都有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
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我正在使用SQL Server 2008 RD.谢谢!
这是一个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
Run Code Online (Sandbox Code Playgroud)