USE AdventureWorks
GO
--语句1
SELECT TOP 1 Name FROM Production.Product WHERE Name='Blade' AND MakeFlag=1
--语句2
SELECT Name FROM Production.Product WHERE Name='Blade' AND MakeFlag=1
这两句结果都是相同,如果写成第一句SELECT TOP 1是效率高,速度快吗??请高手解答。
------解决方案-------------------- 1.两句不等效,因为你查询的结果可能只有一条记录,如果有多条记录的话,第一句则只有一条记录,第二句有多条记录. 2.你的top 1 那句没有带order by 子句,没有意义. 3.所以不存在你说的效率问题.因为意义不一样.
------解决方案--------------------
------解决方案-------------------- top 一般是和order by 一起使用
------解决方案-------------------- 两条语句所表达的意义不同,第一条是按序排列取对应字段的第一个值,第二条是取所有符合条件的字段值,结果相同只是因为本身这个表只有一条符合条件的记录。