Как упоминал Гордон, вам нужно что-то, чтобы обеспечить порядок.Предложение IN не имеет предопределенного порядка, как в таблице.Вместо того, чтобы нумеровать порядок строк самостоятельно, вы можете сделать так, чтобы переменная таблицы делала это так:
DECLARE TABLE @StudentIDs
(
StudentIDKey int IDENTITY(1,1) PRIMARY KEY,
StudentID int
);
INSERT @StudentIDs (StudentID)
VALUES
(5),
(3),
(4);
SELECT *
FROM Student AS s
INNER JOIN @StudentIDs AS id
ON s.StudentID = id.StudentID
ORDER BY id.StudentIDKey;
Это должно быть намного проще, если у вас много значений для работы.
Надеюсь, это поможет.