我有一个记录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,...)
答案 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