SQL Server:IN语句中的ORDER BY参数

Jac*_*kin 1 sql t-sql sql-server

我有一个SQL语句如下:

SELECT A.ID, A.Name 
FROM Properties A 
WHERE A.ID IN (110, 105, 104, 106)
Run Code Online (Sandbox Code Playgroud)

当我运行此SQL语句时,输出将按INID 按列表自动排序并返回

   104 West
   105 East
   106 North
   110 South
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以按顺序排序参数在IN子句中列出.所以它会回来

 110 South
 105 East
 104 West
 106 North
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 10

我认为SQL Server中最简单的方法是使用JOINwith VALUES:

SELECT p.ID, p.Name
FROM Properties p JOIN
     (VALUES (110, 1), (105, 2), (104, 3), (106, 4)) ids(id, ordering)
     ON p.id = a.id
ORDER BY ids.ordering;
Run Code Online (Sandbox Code Playgroud)