当前位置: 代码迷 >> Sql Server >> 关于select top语句的有关问题
  详细解决方案

关于select top语句的有关问题

热度:109   发布时间:2016-04-27 14:10:33.0
关于select top语句的问题
请问下面2条select语句有什么区别:

SQL code
USE AdventureWorksGO--语句1SELECT TOP 1 Name FROM Production.Product WHERE Name='Blade' AND MakeFlag=1--语句2SELECT Name FROM Production.Product WHERE Name='Blade' AND MakeFlag=1

这两句结果都是相同,如果写成第一句SELECT TOP 1是效率高,速度快吗??请高手解答。

------解决方案--------------------
1.两句不等效,因为你查询的结果可能只有一条记录,如果有多条记录的话,第一句则只有一条记录,第二句有多条记录.
2.你的top 1 那句没有带order by 子句,没有意义.
3.所以不存在你说的效率问题.因为意义不一样.

------解决方案--------------------
探讨

1.两句不等效,因为你查询的结果可能只有一条记录,如果有多条记录的话,第一句则只有一条记录,第二句有多条记录.
2.你的top 1 那句没有带order by 子句,没有意义.
3.所以不存在你说的效率问题.因为意义不一样.

------解决方案--------------------
top 一般是和order by 一起使用
------解决方案--------------------
两条语句所表达的意义不同,第一条是按序排列取对应字段的第一个值,第二条是取所有符合条件的字段值,结果相同只是因为本身这个表只有一条符合条件的记录。
  相关解决方案