运行以下查询将返回 4 行。正如我在 SSMS 中看到的,返回行的顺序与我在 IN 子句中指定的顺序相同。
SELECT * FROM Table WHERE ID IN (4,3,2,1)
我可以说返回行的顺序总是与它们在 IN 子句中出现的顺序相同吗?
如果是,那么以下两个查询是否以相同的顺序返回行?(因为我测试过订单是一样的,但我不知道我是否可以相信这种行为)
SELECT TOP 10 * FROM Table ORDER BY LastModification DESC
SELECT * FROM Table WHERE ID IN (SELECT TOP 10 ID FROM Table ORDER BY LastModification DESC)
我问这个问题是因为我有一个非常复杂的选择查询。使用这个技巧给我带来了大约。就我而言,性能提升 30%。