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来说无关紧要!非常感谢:)太好了!非常感谢:)