一尘不染

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

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

阅读 128

收藏
2021-03-08

共1个答案

一尘不染

不,您将不会总是获得基于的结果IN

要明确,并添加一个ORDER BY子句。

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