日期:2014-05-18  浏览次数:20533 次

这条语句如何理解
select isnull((select count(1) from sysobjects where id<t.id),0) as num from sysobjects t

------解决方案--------------------
一个嵌套的子查询,isnull(select count(1) from sysobjects where id<t.id,0) as num
求出总数
------解决方案--------------------
查询id号前面存在有多少记录内容。
------解决方案--------------------
对sysobjects进行查询,比每一个ID小的记录有多少条,如果为NULL,则显示为0。
因为比第一个ID小的记录统计出来肯定是NULL,因此结果集第一条记录肯定显示为0。
如果所有的ID都不重复,那么显示的结果集肯定是按照0,1,2。。。这样的顺序,而且最后一个数字肯定是sysobjects记录数-1。