Sql server按值排序而不是按字段名称排序

Tho*_*mas 2 sql sql-server

假设我的表结构是这样的

ID       OEReference
---      ------------
1         00000634B9
2         00000634B6
3         0005000053
4         0002855071
5         0000940148
6         0001414825
7         00000634B9
Run Code Online (Sandbox Code Playgroud)

我希望他们以我的方式提供OEReference,订单应保持在输出中.我的sql就像

Select * from mytable where OEReference in ('00000634B9','0001414825','00000634B6')
Run Code Online (Sandbox Code Playgroud)

上述语句未按IN子句的顺序返回结果集.我知道ORDER BY CLAUSE是不可能的

我怎样才能在sql server中使用简单的sql语句.谢谢

And*_*mar 5

您可以使用临时表作为过滤器.一个inner join将强制过滤器,你可以进行排序标识列:

declare @filter table (id int identity, ref varchar(50))
insert @filter values ('00000634B9')
insert @filter values ('0001414825')
insert @filter values ('00000634B6')

select  *
from    YourTable yt
join    @filter filter
on      filter.ref = yt.OEReference
order by
        filter.id
Run Code Online (Sandbox Code Playgroud)