数据库中 order by 后面使用多个字段的问题
useNorthwindgoselecttop(1)OrderIDasOI,*fromdbo.OrdersorderbyOrderDate,OrderIDdescOrde...
use Northwind
go
select top (1) OrderID as OI ,*
from dbo.Orders
order by OrderDate ,OrderID desc
Orders表中OrderID是主码。这儿OrderDate OrderID在表中都是按升序排,上面的结果显示的是第一条记录,
而去掉order by中的OrderID后才是最后一条记录,这是为什么? ??????? 展开
go
select top (1) OrderID as OI ,*
from dbo.Orders
order by OrderDate ,OrderID desc
Orders表中OrderID是主码。这儿OrderDate OrderID在表中都是按升序排,上面的结果显示的是第一条记录,
而去掉order by中的OrderID后才是最后一条记录,这是为什么? ??????? 展开
1个回答
展开全部
我的理解是数据库中的记录本来是无序的,如果top没有加字段的话,应该是“随机?”选取记录,如果是有字段后面没有排列则选取字段中的前n位,这一部分我没有搞清楚,你需要自己实验下,SQL我只是有理论没用过的说。如果有字段加了orderby后order by OrderDate ,OrderID desc将记录按照OrderDate降序排列,然后再按照OrderID降序排列,然后记录就变成有序的,从而可以选取前n条的记录。
事实上我还没有弄清楚top是选取前N条记录,还是能够自己筛选大小的说。
你自己试验下,就应该能弄清楚了。
按照我的理解,结果都不应该有大的出入的,因为主排序应该是OrderDate,你再求高人现身说法吧
看看这个http://blog.csdn.net/jion_tang88/article/details/7427763
事实上我还没有弄清楚top是选取前N条记录,还是能够自己筛选大小的说。
你自己试验下,就应该能弄清楚了。
按照我的理解,结果都不应该有大的出入的,因为主排序应该是OrderDate,你再求高人现身说法吧
看看这个http://blog.csdn.net/jion_tang88/article/details/7427763
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询