SQL:结果顺序是否映射到'IN'表达式中的值?

时间:2011-11-08 17:22:30

标签: sql

我有一个记录ID列表,我想从SQL Server 2008中的表中检索单个值。

我的查询是:

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,...)

2 个答案:

答案 0 :(得分:1)

不,您不会总是根据IN按顺序获得结果。

明确,并添加ORDER BY子句。

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

答案 1 :(得分:0)

如果按IN条款排序,我会感到惊讶。由于你没有ORDER BY你可能会得到PK命令的结果,但我也不会依赖它。

如果订单很重要,您应该明确设置:

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