Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写SQL Order By以遵循in参数中的排列_Sql_Sql Server - Fatal编程技术网

如何编写SQL Order By以遵循in参数中的排列

如何编写SQL Order By以遵循in参数中的排列,sql,sql-server,Sql,Sql Server,我需要让SQL中的ORDER BY遵循基于WHERE in参数的安排。这是我当前的SQL SELECT a.code, a.name FROM sometable a WHERE a.code IN ('D001sa', 'EX!5', 'A$34') 我需要得到的结果是: a.code a.name -------------------- 'D001sa' Home 'EX!5' Family 'A$34' Green 如果我有a.code或a.n

我需要让SQL中的ORDER BY遵循基于WHERE in参数的安排。这是我当前的SQL

SELECT a.code, a.name 
FROM sometable a 
WHERE a.code IN ('D001sa', 'EX!5', 'A$34')
我需要得到的结果是:

a.code      a.name
--------------------
'D001sa'    Home
'EX!5'      Family
'A$34'      Green

如果我有a.code或a.name的
订单,我不会得到我需要的结果。

我建议使用
值()


我建议使用
values()


您可以使用前面所述的值或内部联接复合联合查询

SELECT a.code, a.name FROM sometable st
INNER JOIN 
(
   SELECT code = 'D001sa', order = 1
   UNION
   SELECT code = 'EX!5', order = 2
   UNION
   SELECT code = 'A$34', order = 3
)AS X ON x.code=st.code
ORDER BY
    X.order

您可以使用前面所述的值或内部联接复合联合查询

SELECT a.code, a.name FROM sometable st
INNER JOIN 
(
   SELECT code = 'D001sa', order = 1
   UNION
   SELECT code = 'EX!5', order = 2
   UNION
   SELECT code = 'A$34', order = 3
)AS X ON x.code=st.code
ORDER BY
    X.order

这工作做得很好!非常感谢你的帮助这工作做得很好!非常感谢你的帮助