SQL:结果顺序是否映射到';在';表情?

SQL:结果顺序是否映射到';在';表情?,sql,Sql,我有一个记录ID列表,我希望从SQLServer2008中的表中检索该记录ID的单个值 我的问题是: SELECT TestResult.FailureDetails FROM TestResult WHERE TestResult.ID IN (1,2,3,...) “IN”表达式包含数百个ID。ID列是表的主键 如果我的桌子像: ID Value 1 A 2 B 3 C 我是否总是按照“in”表达式中的出现顺序获得结果?如果没有,我正在考虑: SELECT

我有一个记录ID列表,我希望从SQLServer2008中的表中检索该记录ID的单个值

我的问题是:

SELECT TestResult.FailureDetails FROM TestResult WHERE TestResult.ID IN (1,2,3,...)
“IN”表达式包含数百个ID。ID列是表的主键

如果我的桌子像:

ID    Value
1     A
2     B
3     C
我是否总是按照“in”表达式中的出现顺序获得结果?如果没有,我正在考虑:

SELECT TestResult.ID, TestResult.FailureDetails FROM TestResult WHERE TestResult.ID IN (1,2,3,...)

不,您不会总是根据中的
按顺序获得结果

要明确,并添加一个
orderby
子句

SELECT FailureDetails 
FROM TestResult 
WHERE ID IN (1,2,3,...) 
ORDER BY ID;

如果它们是按
子句中的
订购的,我会感到惊讶。因为你没有
orderby,你可能会得到PK顺序的结果,但我也不相信这一点

如果顺序很重要,则应明确设置:

SELECT TestResult.ID, TestResult.FailureDetails FROM TestResult WHERE TestResult.ID IN (1,2,3,...)
ORDER BY TestResult.ID

根据您的示例,您总是希望按
ID
的顺序排列,还是需要支持任意顺序?按ID的顺序排列就可以了。根据下面的答案,我现在也选择TestResult.ID。